Zhparser是pg的一个中文全文检索插件,它基于简单中文分词(SCWS)实现中文解析器。
我们在使用zhparser时常常会遇到的一个问题就是:我们想要分词的词语无法被识别。
例如:
bill=# SELECT * FROM ts_parse('zhparser', '支付宝使用很方便');
tokid | token
-------+-------
118 | 支付
110 | 宝
118 | 使用
100 | 很
118 | 方便
(5 rows)
上面这一句话中,默认的分词词库中无法识别“支付宝”这个词语,于是将它切成了“支付”和“宝”两个词,显然这不是我们希望看到的。那么我们要怎么重新自定义词库呢?
zhparser中支持自定义词库这一功能,自定义词库需要superuser权限, 自定义库是数据库级别的。
–将“支付宝”词加入词库中
bill=# insert into zhparser.zhprs_custom_word values('支付宝');
INSERT 0 1
bill=# select sync_zhprs_custom_word();
sync_zhprs_custom_word
------------------------
(1 row)
–重新登录数据库查看
bill=# SELECT * FROM ts_parse('zhparser', '支付宝使用很方便');
tokid | token
-------+--------
120 | 支付宝
118 | 使用
100 | 很
118 | 方便
(4 rows)
可以看到我们已经将“支付宝”这个词语加入到我们自定义的词库中了!