- 文档首页
云数据库 PostgreSQL 版
用户指南
插件
全文检索(pg_bigm)
全文检索(pg_bigm)
pg_bigm 是云数据库 PostgreSQL 版提供的一款插件,该插件提供了全文本搜索能力,允许创建一个二元语法(2-gram)的 GIN 索引来加速搜索过程。
注意事项
- 建立 GIN 索引的列的大小不可以超过 107,374,180字节(约 102MB)。任何尝试输入大于此限制的数据会报错。
- 如果数据库中存储的内容语言未采用 ASCII 编码,则建议将数据库的编码方式改为 UTF8。
前置条件
使用该插件前,需要将 pg_bigm 加入到 shared_preload_libraries 参数中。关于如何修改参数,请参见修改参数。 注意
不将 pg_bigm 添加到 shared_preload_libraries 参数也能成功创建插件,但是插件不能正常工作。插件没有 shared_preload_libraries 检查,添加到 shared_preload_libraries 参数只是将 pg_bigm 作为 reserved_class_prefix,防止用户使用 pg_bigm 作为自定义变量前缀。不添加到 shared_preload_libraries 参数时,自定义 pg_bigm.xxx 的变量会成功,但是这个变量并不属于 pg_bigm 类;添加到 shared_preload_libraries 参数时,由于 reserved_class_prefix 中存在 pg_bigm,所以自定义 pg_bigm.xxx 的变量会失败。
创建与删除插件
使用
创建索引
执行全文本搜索
在这个示例中,通过 LIKE 执行全文搜索匹配,命中关键词 “Python 编程” 的结果将被返回。
使用 =% 操作符执行相似性搜索
=% 操作符用于计算两个字符串之间的相似度,返回一个浮点数,值越接近 1 表示相似度越高。
插件常用函数
pg_bigm 插件常用的函数有 likequery、show_bigm、bigm_similarity 和 pg_gin_pending_stats。这些函数的基本信息如下:
常用函数使用示例
- bigm_similarity 函数计算两个字符串之间的相似度,与 =% 操作符类似,但以函数形式调用。
插件参数
部分参数的使用示例如下:
说明
在此示例中,可看到 Bitmap Index Scan 从全文搜索索引中检索了两行,但是在重新检查过程之后仅返回了一行。
其他
- pg_trgm 是云数据库 PostgreSQL 版提供的另一款插件,使用 3-gram 的模型来实现全文本搜索。pg_bigm 插件是在基于 pg_trgm 进行的再次开发。pg_bigm 与 pg_trgm 两者的区别如下:
最近更新时间:2026.01.12 20:03:59