文字搜尋配置指定將文件轉換為 tsvector
所需的所有選項:用於將文字分解為標記的解析器,以及用於將每個標記轉換為詞素的字典。每一次呼叫 to_tsvector
或 to_tsquery
都需要一個文字搜尋配置來執行其處理。配置引數 default_text_search_config 指定預設配置的名稱,這是文字搜尋函式在省略顯式配置引數時使用的配置。它可以在 postgresql.conf
中設定,或者使用 SET
命令為單個會話設定。
有幾種預定義的文字搜尋配置可用,並且您可以輕鬆建立自定義配置。為了方便管理文字搜尋物件,提供了一組SQL命令,並且有幾個 psql 命令可以顯示有關文字搜尋物件的資訊(第 12.10 節)。
作為示例,我們將建立一個配置 pg
,首先複製內建的 english
配置
CREATE TEXT SEARCH CONFIGURATION public.pg ( COPY = pg_catalog.english );
我們將使用一個特定於 PostgreSQL 的同義詞列表,並將其儲存在 $SHAREDIR/tsearch_data/pg_dict.syn
中。檔案內容如下:
postgres pg pgsql pg postgresql pg
我們像這樣定義同義詞字典:
CREATE TEXT SEARCH DICTIONARY pg_dict ( TEMPLATE = synonym, SYNONYMS = pg_dict );
接下來,我們註冊 Ispell 字典 english_ispell
,它有自己的配置檔案:
CREATE TEXT SEARCH DICTIONARY english_ispell ( TEMPLATE = ispell, DictFile = english, AffFile = english, StopWords = english );
現在我們可以為配置 pg
中的單詞設定對映:
ALTER TEXT SEARCH CONFIGURATION pg ALTER MAPPING FOR asciiword, asciihword, hword_asciipart, word, hword, hword_part WITH pg_dict, english_ispell, english_stem;
我們選擇不索引或搜尋內建配置所處理的某些標記型別:
ALTER TEXT SEARCH CONFIGURATION pg DROP MAPPING FOR email, url, url_path, sfloat, float;
現在我們可以測試我們的配置了:
SELECT * FROM ts_debug('public.pg', ' PostgreSQL, the highly scalable, SQL compliant, open source object-relational database management system, is now undergoing beta testing of the next version of our software. ');
下一步是將會話設定為使用在新建立的 public
模式中的新配置:
=> \dF List of text search configurations Schema | Name | Description ---------+------+------------- public | pg | SET default_text_search_config = 'public.pg'; SET SHOW default_text_search_config; default_text_search_config ---------------------------- public.pg
如果您在文件中看到任何不正確、與您對特定功能的體驗不符或需要進一步澄清的內容,請使用 此表單 來報告文件問題。