设置pg_trgm的默认限制

Bin*_*gic 6 postgresql full-text-search

这似乎是一个非常基本的问题,但如何更改pg_trgm扩展名的默认限制?目前是0.3.我已经做好了:

select set_limit(0.5)
select show_limit() => 0.5
Run Code Online (Sandbox Code Playgroud)

关闭连接,重新连接:

select show_limit() => 0.3
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

JGH*_*JGH 7

因为Postgres 9.6,pg_trgm利用了大统一配置(GUC)系统,使一个可以设置在群集级别默认添加pg_trgm.similarity_threshold = 0.5postgresql.conf,或在DB级别(alter database myDB set pg_trgm.similarity_threshold = 0.5),或在由GUC(每用户,每函数允许所有其他级别等等)


gen*_*sio 4

这可能不是一个解决方案,而是对潜在解决方案的贡献......

(我假设您希望 pg_trgm 参数用于与数据库的所有连接,而不仅仅是交互式连接?)

看来默认的 0.3 限制是硬编码在函数中的:

trgm_op.c:

    PG_MODULE_MAGIC;

float4          trgm_limit = 0.3f;
Run Code Online (Sandbox Code Playgroud)

我不确定它是否可以通过任何配置文件进行控制,因此一种选择可能是更改源文件中的默认值,然后重新构建扩展。

  • 为什么将其标记为答案?这只是一个提示。 (5认同)