用心打造
VPS知识分享网站

Cloud SQL PostgreSQL新增BM25全文搜索,最低需要PostgreSQL 17

本文于 2026-09-15 09:18 更新,部分内容具有时效性,如有失效,请留言

Google Cloud在2026年9月14日发布Cloud SQL for PostgreSQL的pg_textsearch使用文档。该扩展把BM25相关性评分带进托管PostgreSQL,让应用可以在数据库内部完成全文索引、查询和排序。

这项能力适合商品检索、文档搜索和知识库等需要词频排序的场景,但它并不是语义向量搜索的替代品。官方也提供了把BM25结果与vector扩展结果合并的混合检索方式。

数据库使用BM25索引为全文搜索结果排序的示意图

BM25补足内置ts_rank的排序能力

pg_textsearch考虑逆文档频率、词频饱和和文档长度归一化。Google说明,这些因素可以让结果比PostgreSQL内置的ts_rank更贴近文本相关性。

扩展直接使用标准PostgreSQL存储页,应用不必为同一批数据额外维护Elasticsearch集群。这能减少双集群同步问题,但不会自动解决分词语言、字段权重和搜索质量评估

启用条件限定在PostgreSQL 17及以上

官方要求实例运行PostgreSQL 17或更高版本,并使用维护版本R20260712.01_06或更新版本。管理员还要把数据库标志cloudsql.enable_pg_textsearch设为on,系统会把扩展加入shared_preload_libraries

旧版本实例不能仅靠执行CREATE EXTENSION获得该功能。应先核对数据库主版本和维护版本,并评估修改数据库标志是否需要重启或维护操作。

创建扩展后还要建立BM25索引

满足前置条件后,可在目标数据库执行CREATE EXTENSION pg_textsearch;,再查询pg_extension确认版本。全文检索前需要使用USING bm25为文本列建立索引,并指定合适的text_config

查询通过<@>运算符计算分数,官方示例按分数升序取回结果。语言配置必须与实际内容相匹配,否则索引存在也不代表分词和召回结果正确

向量搜索可以与关键词排序并存

官方文档展示了与vector扩展组合的方式:分别获得语义搜索和全文搜索排名,再使用倒数排名融合计算合并分数。这样既能匹配关键词,也能召回表达不同但语义接近的内容。

混合检索的融合常数和候选数量属于业务参数。生产使用前应以真实查询集测量准确率、延迟与成本,不能直接把示例中的限制值当作所有应用的最佳配置。

上线前应观察索引构建与查询资源

扩展提供批量加载阈值、段压缩、默认评分文档上限、内存页阈值和每层段数量等配置。Google列出的默认值适合作为起点,但大表初建索引和高并发检索仍可能增加CPU、内存与存储压力。

验收标准应包含扩展版本正确、BM25索引有效、典型查询排序符合预期,并且实例资源和查询延迟处于预算范围。若要回滚,应先确认应用不再依赖相关索引和运算符,再处理扩展与数据库标志。

赞(0)
未经允许不得转载;国外VPS测评网 » Cloud SQL PostgreSQL新增BM25全文搜索,最低需要PostgreSQL 17
分享到