dict_int
是一個用於全文檢索的附加字典範本的範例。這個範例字典的動機是控制整數(有符號和無符號)的索引,允許索引這些數字,同時防止唯一單詞數量的過度增長,這會極大地影響搜尋的效能。
這個模組被認為是「“信任的”」,也就是說,具有目前資料庫的 CREATE
權限的非超級使用者可以安裝它。
這個字典接受三個選項
maxlen
參數指定整數單詞允許的最大位數。預設值為 6。
rejectlong
參數指定是否應截斷或忽略過長的整數。如果 rejectlong
為 false
(預設值),則字典會傳回整數的前 maxlen
位數字。如果 rejectlong
為 true
,則字典會將過長的整數視為停止詞,因此不會對其建立索引。請注意,這也表示無法搜尋到該整數。
absval
參數指定是否應從整數單詞中移除前導的「“+
”」或「“-
”」符號。預設值為 false
。當 true
時,會在套用 maxlen
之前移除符號。
安裝 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;
如果您在文件中看到任何不正確、與您使用特定功能的經驗不符或需要進一步釐清的內容,請使用此表單報告文件問題。