如何在 Google Cloud SQL PostgreSQL 实例中配置 pg_trgm 相似度阈值参数

How to configure pg_trgm similarity threshold parameters in a Google Cloud SQL PostgreSQL instance

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

问题是云 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"

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

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

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