pg_bigm
基于二字组的多语言全文检索扩展
仓库
pgbigm/pg_bigm
https://github.com/pgbigm/pg_bigm
源码
pg_bigm-1.2-20250903.tar.gz
pg_bigm-1.2-20250903.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pg_bigm | 1.2 | FTS | PostgreSQL | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 2120 | pg_bigm | 否 | 是 | 是 | 是 | 否 | 是 | - |
| 相关扩展 | pgroonga pg_cjk_parser pg_jieba zhparser pg_tokenizer pg_pinyin unaccent pg_trgm dict_xsyn biscuit |
|---|
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | MIXED | 1.2 | 1817161514 | pg_bigm | - |
| RPM | PGDG | 1.2 | 1817161514 | pg_bigm_$v | - |
| DEB | PIGSTY | 1.2 | 1817161514 | postgresql-$v-pg-bigm | - |
构建
您可以使用 pig build 命令构建 pg_bigm 扩展的 RPM / DEB 包:
BASH
安装
您可以直接安装 pg_bigm 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
BASH
使用 pig 或者是 apt/yum/dnf 安装扩展:
安装
BASH
pig
BASH
dnf
BASH
apt
BASH
预加载配置:
BASH
创建扩展:
SQL
用法
pg_bigm 模块为 PostgreSQL 提供全文搜索能力。它允许用户创建 2-gram(bigram)索引,以加速全文搜索。
pg_bigm 采用 PostgreSQL License 发布,是一种宽松的开源许可证,和 BSD、MIT 类似。
功能特性
- Bigram 索引:为文本列创建 2-gram(bigram)GIN 索引
- 更快的 LIKE 搜索:加速
LIKE查询,包括前缀、后缀和子串搜索 - 全语言支持:无需额外配置即可支持包括中文、日文、韩文在内的任意语言
- 简单 API:提供相似度搜索函数和运算符
函数与运算符
函数
| 函数 | 返回类型 | 说明 |
|---|---|---|
likequery(text) | text | 根据关键字生成全文搜索查询 |
show_bigm(text) | text[] | 显示给定字符串中的所有 2-gram |
pg_gin_pending_stats(regclass) | record | 返回 GIN 索引待处理列表中的页面数和元组数 |
运算符
| 运算符 | 说明 |
|---|---|
text =% text | 当左右操作数的相似度大于等于 pg_bigm.similarity_limit 时返回 true |
GUC 参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
pg_bigm.last_update | text | - | 显示模块最后更新日期(只读) |
pg_bigm.enable_recheck | bool | on | 控制索引扫描期间是否执行复查 |
pg_bigm.gin_key_limit | int | 0 | 限制全文搜索使用的最大 bigram 数量,0 表示不限制 |
pg_bigm.similarity_limit | real | 0.3 | 设置 =% 运算符的最小相似度阈值 |
示例
基本全文搜索
SQL
相似度搜索
SQL
与 pg_trgm 的比较
pg_bigm 相较于内置的 pg_trgm 有以下优势:
| 特性 | pg_bigm | pg_trgm |
|---|---|---|
| N-gram 类型 | 2-gram(bigram) | 3-gram(trigram) |
| 最小搜索字符串 | 1 个字符 | 3 个字符 |
| 非字母语言 | 完全支持 | 有限支持 |
| LIKE 搜索类型 | 前缀、后缀和子串 | 前缀、后缀和子串 |
更完整的高级用法和性能调优,请参见 pg_bigm 官方文档。