pg_trgm

os: centos 7.4
db: postgresql 10.10

pg_trgm模块提供用于决定基于 trigram 匹配的字母数字文本相似度的函数和操作符,以及支持快速搜索相似字符串的索引操作符类。
pg_trgm 是 contrib 包自带的 extension 。

yum install

# yum list installed |grep -i postgresql
postgresql10.x86_64                10.10-1PGDG.rhel7                   @pgdg10  
postgresql10-contrib.x86_64        10.10-1PGDG.rhel7                   @pgdg10  
postgresql10-debuginfo.x86_64      10.10-1PGDG.rhel7                   @pgdg10  
postgresql10-devel.x86_64          10.10-1PGDG.rhel7                   @pgdg10  
postgresql10-docs.x86_64           10.10-1PGDG.rhel7                   @pgdg10  
postgresql10-libs.x86_64           10.10-1PGDG.rhel7                   @pgdg10  
postgresql10-odbc.x86_64           11.01.0000-1PGDG.rhel7              @pgdg10  
postgresql10-plperl.x86_64         10.10-1PGDG.rhel7                   @pgdg10  
postgresql10-plpython.x86_64       10.10-1PGDG.rhel7                   @pgdg10  
postgresql10-pltcl.x86_64          10.10-1PGDG.rhel7                   @pgdg10  
postgresql10-server.x86_64         10.10-1PGDG.rhel7                   @pgdg10  
postgresql10-tcl.x86_64            2.4.0-1.rhel7                       @pgdg10  
postgresql10-tcl-debuginfo.x86_64  2.3.1-1.rhel7                       @pgdg10  
postgresql10-test.x86_64           10.10-1PGDG.rhel7                   @pgdg10 

查看安装后的extension文件

# ls -l /usr/pgsql-10/lib/*pg_trgm*
-rwxr-xr-x 1 root root 45224 Oct 27 20:11 /usr/pgsql-10/lib/pg_trgm.so

# ls -l /usr/pgsql-10/share/extension/*pg_trgm*
-rw-r--r-- 1 root root  536 Oct 27 20:11 /usr/pgsql-10/share/extension/pg_trgm--1.0--1.1.sql
-rw-r--r-- 1 root root 2192 Oct 27 20:11 /usr/pgsql-10/share/extension/pg_trgm--1.1--1.2.sql
-rw-r--r-- 1 root root 2903 Oct 27 20:11 /usr/pgsql-10/share/extension/pg_trgm--1.2--1.3.sql
-rw-r--r-- 1 root root 7975 Oct 27 20:11 /usr/pgsql-10/share/extension/pg_trgm--1.3.sql
-rw-r--r-- 1 root root  177 Oct 27 20:11 /usr/pgsql-10/share/extension/pg_trgm.control
-rw-r--r-- 1 root root 4246 Oct 27 20:11 /usr/pgsql-10/share/extension/pg_trgm--unpackaged--1.0.sql

create extension tablefunc

# su - postgres
$ psql

postgres=# select * from pg_available_extensions where name like '%pg_trgm%';
  name   | default_version | installed_version |                              comment                              
---------+-----------------+-------------------+-------------------------------------------------------------------
 pg_trgm | 1.3             |                   | text similarity measurement and index searching based on trigrams
(1 row)

postgres=# 
postgres=# create extension pg_trgm;
CREATE EXTENSION
postgres=# \dx 
                                   List of installed extensions
    Name    | Version |   Schema   |                            Description                            
------------+---------+------------+-------------------------------------------------------------------
 pg_trgm    | 1.3     | public     | text similarity measurement and index searching based on trigrams
(1 rows)

postgres=# \dx+ pg_trgm
                                  Objects in extension "pg_trgm"
                                        Object description                                        
--------------------------------------------------------------------------------------------------
 function gin_extract_query_trgm(text,internal,smallint,internal,internal,internal,internal)
 function gin_extract_value_trgm(text,internal)
 function gin_trgm_consistent(internal,smallint,text,integer,internal,internal,internal,internal)
 function gin_trgm_triconsistent(internal,smallint,text,integer,internal,internal,internal)
 function gtrgm_compress(internal)
 function gtrgm_consistent(internal,text,smallint,oid,internal)
 function gtrgm_decompress(internal)
 function gtrgm_distance(internal,text,smallint,oid,internal)
 function gtrgm_in(cstring)
 function gtrgm_out(gtrgm)
 function gtrgm_penalty(internal,internal,internal)
 function gtrgm_picksplit(internal,internal)
 function gtrgm_same(gtrgm,gtrgm,internal)
 function gtrgm_union(internal,internal)
 function set_limit(real)
 function show_limit()
 function show_trgm(text)
 function similarity_dist(text,text)
 function similarity_op(text,text)
 function similarity(text,text)
 function word_similarity_commutator_op(text,text)
 function word_similarity_dist_commutator_op(text,text)
 function word_similarity_dist_op(text,text)
 function word_similarity_op(text,text)
 function word_similarity(text,text)
 operator class gin_trgm_ops for access method gin
 operator class gist_trgm_ops for access method gist
 operator family gin_trgm_ops for access method gin
 operator family gist_trgm_ops for access method gist
 operator <<->(text,text)
 operator <->>(text,text)
 operator <->(text,text)
 operator <%(text,text)
 operator %>(text,text)
 operator %(text,text)
 type gtrgm
(36 rows)

详细使用,可以参考官方文档

参考:
http://postgres.cn/docs/10/pgtrgm.html

发布了710 篇原创文章 · 获赞 70 · 访问量 49万+

猜你喜欢

转载自blog.csdn.net/ctypyb2002/article/details/103426351
今日推荐