构建镜像
pgvector 和 zhparser 都有自己的 Docker 镜像。只需要将二者的 Dockerfile 合并即可。
pgvector:pgvector/pgvector: Open-source vector similarity search for Postgres
这里的做法是在 zhparser 的基础上构建 pgvector 的镜像,即只需更改 pgvector 的基础镜像即可
1 | ARG PG_MAJOR=17 |
自定义配置
zhparser 默认的配置默认及其含义如下:
参数 | 含义 |
---|---|
zhparser.punctuation_ignore = f | 忽略所有的标点等特殊符号 |
zhparser.seg_with_duality = f | 闲散文字自动以二字分词法聚合 |
zhparser.dict_in_memory = f | 将词典全部加载到内存里 |
zhparser.multi_short = f | 短词复合 |
zhparser.multi_duality = f | 散字二元复合 |
zhparser.multi_zmain = f | 重要单字复合 |
zhparser.multi_zall = f | 全部单字复合 |
可以在 PHP简易中文分词(SCWS) 第4版在线演示 (by hightman) 此处实验效果
可以在 postgresql.conf 中开启以上配置项
1 | zhparser.punctuation_ignore = t |
重新启动 Docker 即可,这里因为修改了配置文件,所以启动的时候需要指定启动文件的位置
1 | docker run -itd -e PGUSER=postgres -e POSTGRES_PASSWORD=power_2024! -e POSTGRES_DB=zhishi -p 15434:5432 -v D:/project/postgresql.conf:/etc/postgresql.conf pgvector-17-zhparser:v1.0.0 postgres -c config_file=/etc/postgresql.conf |
查询测试
成品
yanrs/pgvector-17-zhparser Tags
自定义分词
可以在 zhparser.zhprs_custom_word 中插入自定义分词
插入后,需要执行 select sync_zhprs_custom_word();
然后重新连接数据库才会生效。