支援的版本:目前 (17) / 16 / 15 / 14 / 13
開發版本:devel
不支援的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3

F.12. dict_int — 整數的全文檢索引擎字典範例 #

dict_int 是一個用於全文檢索的附加字典範本的範例。這個範例字典的動機是控制整數(有符號和無符號)的索引,允許索引這些數字,同時防止唯一單詞數量的過度增長,這會極大地影響搜尋的效能。

這個模組被認為是「信任的」,也就是說,具有目前資料庫的 CREATE 權限的非超級使用者可以安裝它。

F.12.1. 設定 #

這個字典接受三個選項

  • maxlen 參數指定整數單詞允許的最大位數。預設值為 6。

  • rejectlong 參數指定是否應截斷或忽略過長的整數。如果 rejectlongfalse(預設值),則字典會傳回整數的前 maxlen 位數字。如果 rejectlongtrue,則字典會將過長的整數視為停止詞,因此不會對其建立索引。請注意,這也表示無法搜尋到該整數。

  • absval 參數指定是否應從整數單詞中移除前導的「+」或「-」符號。預設值為 false。當 true 時,會在套用 maxlen 之前移除符號。

F.12.2. 用法 #

安裝 dict_int 擴充功能會建立一個文字搜尋範本 intdict_template 和一個基於它的字典 intdict,使用預設參數。您可以更改參數,例如

mydb# ALTER TEXT SEARCH DICTIONARY intdict (MAXLEN = 4, REJECTLONG = true);
ALTER TEXT SEARCH DICTIONARY

或基於該範本建立新的字典。

若要測試字典,您可以嘗試

mydb# select ts_lexize('intdict', '12345678');
 ts_lexize
-----------
 {123456}

但是,實際使用將涉及將其包含在文字搜尋設定中,如第 12 章中所述。這可能看起來像這樣

ALTER TEXT SEARCH CONFIGURATION english
    ALTER MAPPING FOR int, uint WITH intdict;

提交更正

如果您在文件中看到任何不正確、與您使用特定功能的經驗不符或需要進一步釐清的內容,請使用此表單報告文件問題。