RDS PostgreSQL支持pg_jieba插件,用于中文的全文搜索。
您可以加入RDS PostgreSQL插件交流釘釘群(103525002795),進行咨詢、交流和反饋,獲取更多關于插件的信息。
前提條件
使用方法
創建插件
CREATE EXTENSION pg_jieba;
說明僅高權限賬號可以執行此命令。
刪除插件
DROP EXTENSION pg_jieba;
說明僅高權限賬號可以執行此命令。
使用示例1:
SELECT * FROM to_tsvector('jiebacfg', '小明碩士畢業于中國科學院計算所,后在日本京都大學深造'); to_tsvector -------------------------------------------------------------------------------------------------------------- '中國科學院':5 '于':4 '后':8 '在':9 '小明':1 '日本京都大學':10 '畢業':3 '深造':11 '碩士':2 '計算所':6 ',':7 (1 row)
使用示例2:
SELECT * FROM to_tsvector('jiebacfg', '李小福是創新辦主任也是云計算方面的專家'); to_tsvector ------------------------------------------------------------------------------------------- '專家':11 '主任':5 '也':6 '云計算':8 '創新':3 '辦':4 '方面':9 '是':2,7 '李小福':1 '的':10 (1 row)
擴展功能
請根據您當前已安裝pg_jieba插件的版本,查看對應插件版本的擴展功能。
請使用如下SQL語句查詢已安裝pg_jieba插件版本:
SELECT * FROM pg_available_extensions WHERE name='pg_jieba';
1.1.0擴展功能
pg_jieba支持配置多個自定義詞庫并切換。
-- 0號詞典插入數據(默認0號詞典,權重10) INSERT INTO jieba_user_dict VALUES ('阿里云'); INSERT INTO jieba_user_dict VALUES ('研發工程師',0,10); -- 使用jieba自帶詞庫分詞 SELECT * FROM to_tsvector('jiebacfg', 'zth是阿里云的一個研發工程師'); to_tsvector ------------------------------------------------------ 'zth':1 '一個':6 '云':4 '工程師':8 '研發':7 '阿里':3 (1 row) -- 切換自定義詞典到0號,jieba_load_user_dict()中傳入的參數為自定義詞典序號 SELECT jieba_load_user_dict(0); jieba_load_user_dict ---------------------- (1 row) SELECT * FROM to_tsvector('jiebacfg', 'zth是阿里云的一個研發工程師'); to_tsvector -------------------------------------------- 'zth':1 '一個':5 '研發工程師':6 '阿里云':3 (1 row)
支持按照偏移量顯示分詞結果。
SELECT * FROM to_tsvector('jiebacfg_pos', 'zth是阿里云的一個研發工程師'); to_tsvector -------------------------------------------------------------------------------------- 'zth:0':1 '一個:8':6 '云:6':4 '工程師:12':8 '是:3':2 '的:7':5 '研發:10':7 '阿里:4':3 (1 row)
1.2.0擴展功能
優化
jieba_load_user_dict()
對內存和CPU的消耗。jieba_load_user_dict()
新增配置參數,用于設置檢索時是否使用默認詞典。語法
jieba_load_user_dict(parameter1, parameter2)
參數解釋
參數
取值說明
parameter1
表示加載自定義詞典的詞典序號。
parameter2
表示是否加載默認詞典。
0:加載默認詞典
1:不加載默認詞典
使用示例
INSERT INTO jieba_user_dict VALUES ('阿里云'); INSERT 0 1 INSERT INTO jieba_user_dict VALUES ('研發工程師',0,10); INSERT 0 1 -- 第一個0 代表自定義詞典序號,第二個0 代表加載默認詞典 SELECT jieba_load_user_dict(0,0); jieba_load_user_dict ---------------------- (1 row) SELECT * FROM to_tsvector('jiebacfg', 'zth是阿里云的一個研發工程師'); to_tsvector -------------------------------------------- 'zth':1 '一個':5 '研發工程師':6 '阿里云':3 (1 row) SELECT jieba_load_user_dict(0,1); jieba_load_user_dict ---------------------- (1 row) SELECT * FROM to_tsvector('jiebacfg', 'zth是阿里云的一個研發工程師'); to_tsvector ------------------------------------------------------ 'zth':1 '一個':6 '云':4 '工程師':8 '研發':7 '阿里':3 (1 row)
說明如果表
jieba_user_dict
或者函數jieba_load_user_dict()
不存在,請升級內核小版本到20220730,并重新安裝插件。升級內核小版本:升級內核小版本。
重新安裝插件:
DROP EXTENSION pg_jieba; CREATE EXTENSION pg_jieba;
相關參考
此插件的更多用法,請參見pg_jieba官方文檔。
文檔內容是否對您有幫助?