PostgreSQL pg_trgm扩展安装 模糊查询 使用原理

1.pg_trgm安装

(1)安装btree_gin和pg_trgm
# 需要先进入pg源码包中
su - postgres
cd contrib/pg_trgm/
make && make install
 
安装pg_trgm扩展时需要安装btree_gin才可以使用
cd contrib/btree_gin/
make && make install
 
(2)创建扩展
  安装的扩展默认都是在pg_catalog这个schema下面。也可以创建在其他schema下 
su - postgres
psql -d databasename
--进入到psql里面,安装插件
create extension pg_trgm;
create extension btree_gin;

--查看是否已经安装
select * from pg_extension;
 
(3)删除扩展
drop extension pg_trgm;
ps:如果是在docker或者k8s中安装的,那就不需要编译扩展包
 

2.pg_trgm原理

(1)pg_trgm将字符串的前端添加2个空格,末尾添加1个空格。
(2)每连续的3个字符为一个TOKEN,拆开。
(3)对TOKEN建立GIN倒排索引。
字符串原理:
postgres=# select show_trgm('123');
show_trgm
-------------------------
{" 1"," 12",123,"23 "}
(1 row)

3.pg_trgm使用场景

(1)有前缀的模糊查询,例如a%,至少需要提供1个字符。(搜索的是令牌='a')
(2)有后缀的模糊查询,例如%ab,至少需要提供2个字符。(搜索的是token ='ab')
(3)前后模糊查询,例如%abcd%,至少需要提供3个字符。(这个使用数组搜索,搜索的是token(s)包含{“a”,“ab”,abc,bcd,“cd”})
 

猜你喜欢

转载自blog.csdn.net/qq_35260875/article/details/106148664