GUC 与索引参数
vchord_bm25 会话级 GUC 参数与索引存储选项的完整参考手册。
稳定发布版(v0.1.0 – v0.3.0):bm25_catalog.* GUC 参数
在 v0.1.0 至 v0.3.0 版本中,所有会话级 GUC 参数均使用 bm25_catalog. 前缀,任何普通用户均可在会话或事务级别修改(GucContext::Userset):
| 参数名称 | 类型 | 默认值 | 有效范围 | 说明 |
|---|---|---|---|---|
bm25_catalog.bm25_limit |
integer |
100 |
-1 .. 65535 |
单次 bm25 索引扫描返回的高分文档最大数量。设为 -1 时禁用 Block-WeakAnd 剪枝并执行全量暴力扫描;设为 0 时直接返回空结果。必须 SQL 查询中的 LIMIT 值。 |
bm25_catalog.enable_index |
boolean |
true |
true / false |
在 PostgreSQL 查询规划器中启用或禁用 bm25 索引扫描。设为 false 可强制执行顺序扫描并调用 search_bm25query 精确求值。 |
bm25_catalog.enable_prefilter |
boolean |
true |
true / false |
自 v0.2.2 引入。设为 true 时,会在将候选文档推入 Block-WeakAnd Top-K 最小堆之前,先行过滤掉不满足查询过滤条件或 MVCC 可见性检查的文档。 |
bm25_catalog.segment_growing_max_page_size |
integer |
4096 |
1 .. 1000000 |
仅追加的增长段(Growing Segment)在被封存为差分位打包压缩的只读封闭段(Sealed Segment)之前的最大尺寸(以 8 KB 页面为单位,默认值 4096 即 32 MB)。 |
配置示例(v0.1 – v0.3)
新一代 main 分支:bm25.* GUC 参数与索引存储参数
在 main 分支重构版本中,会话级 GUC 参数改用 bm25. 前缀,并与每个索引独立的存储参数(WITH (...))配合工作:
会话级 GUC 参数(main)
| 参数名称 | 类型 | 默认值 | 有效范围 | 说明 |
|---|---|---|---|---|
bm25.enable_scan |
boolean |
true |
true / false |
在查询规划器中启用或禁用 bm25 索引扫描。 |
bm25.limit |
integer |
100 |
0 .. 65535 |
单次 bm25 索引扫描返回的最大结果数。若设为 0,则回退使用索引自身的 limit 存储参数。 |
bm25.prefilter |
boolean |
false |
true / false |
在 bm25 索引扫描期间启用预过滤(当设为 true 时,会覆盖索引自身的 prefilter 存储参数)。 |
索引存储参数(main 中的 WITH (...))
| 存储参数 | 类型 | 默认值 | 有效范围 | 说明 |
|---|---|---|---|---|
options |
string (TOML) |
k1 = 1.2, b = 0.75 |
k1: 1.2..2.0b: 0.0..1.0 |
用于配置该索引 Okapi BM25 超参数 与 的 TOML 字符串。 |
limit |
integer |
0 |
0 .. 65535 |
当会话参数 bm25.limit = 0 时使用的索引级回退检索上限。 |
prefilter |
boolean |
false |
true / false |
索引级的默认预过滤设置。 |