PostgreSQL使用zhparser自定義分詞

2021-10-02 07:16:20 字數 1049 閱讀 4475

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('支付寶');

insert01

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

)

可以看到我們已經將「支付寶」這個詞語加入到我們自定義的詞庫中了!

為何使用 PostgreSQL

五年以前,我寫了乙個 為何你應使用postgresql 的岾子,引起了廣泛的關注。一年以後,我增加了一些我漏寫的內容,這些內容我會在這篇文章的後半部分重述一下要點。但是在最近的4 5年,postgresql有了很多的改進和提高,也就有了更多的理由我們為何要使用它。現在這裡是乙個新的總結,為何你應使用...

PostgreSQL使用大全

持續更新中 1.初始postgresql資料庫集群 initdb d datapath 使用該命令會建立乙個資料庫集群,用於管理多個資料庫,同時當初始化資料庫集群時,會建立共享的表,同時會建立template1和postgres兩個資料庫。對於template1資料庫,是資料庫的模板,當我們新建立資...

postgresql與typeorm使用經驗分享

在建立postgresql的表時,定義陣列等字段時,根據陣列中的元素的型別可以在相應型別後新增乙個就可以了。但是在定義陣列物件或者json時,則需要json或者jsonb eg bin bash psql u d eosql create table page page id varchar 36 ...