[postgres]docker下使用中文全文搜索

在Docker环境下,使用postgres进行中文全文搜索,需要配置chenxinaz/zhparser镜像,修改postgres配置文件以支持中文分词。通过设置ALLOW_IP_RANGE允许外部访问,并更改解析器为中文模式。利用gin反转索引提升查询效率,创建触发器自动更新分词字段。全文检索时,tsquery与tsvector使用@@操作符进行匹配。
摘要由CSDN通过智能技术生成

我们使用docker进行构建则可以使用现有的镜像chenxinaz/zhparser

流程

  1. 我们首先需要一个postgres的配置文件然后对其修改,这个可以直接从启动的容器中获取。
docker run -i --rm chenxinaz/zhparser:latest cat /usr/share/postgresql/postgresql.conf.sample > config/postgres/my_postgres.conf

然后在配置文件结尾加上这几条配置用来控制分词情况

zhparser.multi_short = true #短词复合: 1
zhparser.multi_duality = true  #散字二元复合: 2
zhparser.multi_zmain = true  #重要单字复合: 4
zhparser.multi_zall = false  #全部单字复合: 8
  1. 然后我们可以直接启动服务
docker run --name postgres_zr -v 本地数据存储位置:/var/lib/postgresql/data -v 本地路径/my_postgres.conf:/etc/postgresql/postgresql.conf -p 5432:5432 -e ALLOW_IP_RANGE=0.0.0.0/0 -e POSTGRES_USER=root -e POSTGRES_PASSWORD=123456 -e POSTGRES_DB=数据库名 -d chenxinaz/zhparser -c 'config_file=/etc/postgresql/postgresql.conf'

ALLOW_IP_RANGE 允许其他机器访问
3. 然后进行配置(postgres 默认是 english 解析器)

--连接到目标数据库,创建zhparser解析器
CREATE EXTENSION zhparser;
-- 将zhparser解析器作为全文检索配置项
CREATE TEXT SEARCH CONFIGURATION chinese (PARSER = zhparser);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值