【问题标题】:How to configure pg_trgm similarity threshold parameters in a Google Cloud SQL PostgreSQL instance如何在 Google Cloud SQL PostgreSQL 实例中配置 pg_trgm 相似度阈值参数
【发布时间】:2021-03-13 00:00:27
【问题描述】:

我在 Cloud SQL 中有一个 Postgres 数据库,并希望利用 pg_trgm 扩展来进行相似性搜索。但是,默认阈值参数在我的用例中不够敏感,因此应该更改它们。

问题在于 Cloud SQL 没有为pg_trgm.similarity_thresholdpg_trgm.word_similarity_threshold 提供database flags,并且数据库用户没有更改用户或数据库的权限:

postgres=> ALTER ROLE postgres SET pg_trgm.similarity_threshold = 0.1;
ERROR:  permission denied to set parameter "pg_trgm.similarity_threshold"

postgres=> ALTER DATABASE postgres SET pg_trgm.similarity_threshold = 0.1;
ERROR:  permission denied to set parameter "pg_trgm.similarity_threshold"

还有其他方法可以改变这些参数吗?

【问题讨论】:

    标签: postgresql google-cloud-sql


    【解决方案1】:

    你能做到直截了当的SET pg_trgm.similarity_threshold = 0.1;吗?您必须在每个会话中重复它,所以也许将它合并到您的连接子中。

    对于similarity_threshold,您可以使用函数set_limit,除非谷歌也禁用了它。不过,您还必须在每个会话中以这种方式进行设置。但是,没有其他方法可以设置 word_similarity_threshold,除非 Google 发明了一种方法。

    【讨论】:

    • 可以设置它,所以我按照建议将此作为连接脚本。
    • 您还可以使用本地事务级别集,这可能适用于那些使用事务池的人,因为那里的会话级别原语可能有点不稳定。
    猜你喜欢
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 2020-12-10
    相关资源
    最近更新 更多