2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 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”引數指定過長整數是應該被截斷還是被忽略。如果“rejectlong”為“false”(預設值),則字典會返回整數的前“maxlen”位數字。如果“rejectlong”為“true”,則字典將過長的整數視為停用詞,這樣它就不會被索引。請注意,這也意味著這樣的整數將無法被搜尋到。

  • 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;

提交更正

如果您在文件中發現任何不正確之處、與您對特定功能的體驗不符或需要進一步說明的內容,請使用 此表單 報告文件問題。