PostgreSQL9.4使用record_to_text()以及pg_trgm extension安装过程

在PostgreSQL 9.4中,为提高全文模糊查询效率,需要安装pg_trgm扩展并使用record_to_text()函数。安装pg_trgm扩展时,若直接通过SQL创建extension失败,可能是因为缺少postgresql-contrib模块。通过在Linux环境中安装对应版本的postgresql94-contrib模块,然后执行SQL即可成功创建extension。安装完成后无需重启数据库,即可使用record_to_text()函数。
摘要由CSDN通过智能技术生成

做业务过程中,难免会遇到全文模糊查询的问题。使用“like”或者正则等方式可以解决问题,但是效率偏慢。对于大批量数据的全文模糊查询,可以使用postgre的record_to_text()函数解决。而此函数需要安装pg_trgm extension。

对于高版本的数据库(使用9.16进行测试),可以直接使用创建extension。但是对于低版本的数据库,需要手动安装插件进行配置。这里贴上官方文档(有版本兼容性的描述):pg_trgm官方介绍

安装过程:

使用的postgres版本:PostgreSQL 9.4.25 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39), 64-bit

直接执行如下SQL:

create extension pg_trgm;

结果不能成功执行,报错信息:

Error: could not open extension control file "/usr/pgsql-9.4/share/extension/pg_trgm.control": No such file or directory

原因是原先安装的PostgreSQL并没有安装postgresql-contrib模块。

安装postgresql94-contrib模块:
首先登陆数据库服务器,并且需要有和安装数据库的账号等同或者更高的权限。

OS:Linux lx-db-server 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

PostgreSQL版本:PostgreSQL 9.4.25 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39), 64-bit

由于本数据库版本为9.4,所以执行如下命令。不同版本需要注意安装对应版本的模块。

[root@xxxx-server ~]# yum install postgresql94-contrib

P.S. 如果数据库服务器不能登陆(例如使用第三方平台的RDS等),或者服务器不能连接外网,则不能使用该方法。

执行结果:

Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
base                                                                                                                                                                           | 3.6 kB  00:00:00     
epel                                                                                                                                                                           | 5.3 kB  00:00:00     
extras                                                                                                                                                                         | 2.9 kB  00:00:00     
mysql-connectors-community                                                                                                                                                     | 2.5 kB  00:00:00     
mysql-tools-community                                                                                                                                                          | 2.5 kB  00:00:00     
mysql57-community                                                                                                                                                              | 2.5 kB  00:00:00     
pgdg10                                                                                                                                                                         | 3.6 kB  00:00:00     
pgdg94                                                                                                                                                                         | 3.6 kB  00:00:00     
updates                                                                                                                                                                        | 2.9 kB  00:00:00     
(1/12): epel/x86_64/group_gz                                                                                                                                                   |  90 kB  00:00:00     
(2/12): base/7/x86_64/group_gz                                                                                                                                                 | 165 kB  00:00:00     
(3/12): extras/7/x86_64/primary_db                                                                                                                                             | 153 kB  00:00:00     
(4/12): epel/x86_64/updateinfo                                                                                                                                                 | 1.0 MB  00:00:00     
(5/12): base/7/x86_64/primary_db                                                                                                                                               | 6.0 MB  00:00:00     
(6/12): epel/x86_64/primary_db                                                                                                                                                 | 6.9 MB  00:00:00     
(7/12): mysql-connectors-community/x86_64/primary_db                                                                                                                           |  49 kB  00:00:00     
(8/12): mysql-tools-community/x86_64
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值