W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
dict_xsyn
(擴展同義詞字典)是一個附加全文搜索字典模板的例子。這種字典類型將詞替換為它們的同義詞分組,并且讓使用其任一同義詞進行搜索變得可能。
一個dict_xsyn
詞典接受以下選項:
matchorig
控制該詞典是否接受原生詞。默認為true
。
matchsynonyms
控制該詞典是否接受同義詞。默認為false
。
keeporig
控制原生詞是否被包括在詞典的輸出中。默認為true
。
keepsynonyms
控制同義詞是否被包括在詞典的輸出中。默認為true
。
rules
是包含同義詞列表的文件的基本名。這個文件必須被存儲在$SHAREDIR/tsearch_data/
(其中$SHAREDIR
表示PostgreSQL安裝的共享數(shù)據(jù)目錄)中。它的名稱必須以.rules
結(jié)束(這不包括在
rules
參數(shù)中)。
規(guī)則文件具有下面的格式:
每一行表示一個單一詞的同義詞分組,它在該行中首先被給出。同義詞被空白分隔,這樣:
word syn1 syn2 syn3
井號(#
)是注釋定界符。它可以出現(xiàn)在一行中的任何位置。該行的剩余部分將被跳過。
例如,可以看看安裝在$SHAREDIR/tsearch_data/
中的xsyn_sample.rules
。
安裝dict_xsyn
擴展會用默認參數(shù)創(chuàng)建一個文本搜索模板xsyn_template
以及一個基于它的詞典xsyn
。你可以修改參數(shù),例如
mydb# ALTER TEXT SEARCH DICTIONARY xsyn (RULES='my_rules', KEEPORIG=false);
ALTER TEXT SEARCH DICTIONARY
或者基于該模板創(chuàng)建新的詞典。
要測試該詞典,你可以嘗試
mydb=# SELECT ts_lexize('xsyn', 'word');
ts_lexize
-----------------------
{syn1,syn2,syn3}
mydb# ALTER TEXT SEARCH DICTIONARY xsyn (RULES='my_rules', KEEPORIG=true);
ALTER TEXT SEARCH DICTIONARY
mydb=# SELECT ts_lexize('xsyn', 'word');
ts_lexize
-----------------------
{word,syn1,syn2,syn3}
mydb# ALTER TEXT SEARCH DICTIONARY xsyn (RULES='my_rules', KEEPORIG=false, MATCHSYNONYMS=true);
ALTER TEXT SEARCH DICTIONARY
mydb=# SELECT ts_lexize('xsyn', 'syn1');
ts_lexize
-----------------------
{syn1,syn2,syn3}
mydb# ALTER TEXT SEARCH DICTIONARY xsyn (RULES='my_rules', KEEPORIG=true, MATCHORIG=false, KEEPSYNONYMS=false);
ALTER TEXT SEARCH DICTIONARY
mydb=# SELECT ts_lexize('xsyn', 'syn1');
ts_lexize
-----------------------
{word}
現(xiàn)實世界的用法將涉及將它包括在一個第 12 章中描述的文本搜索配置中??雌饋硐襁@樣:
ALTER TEXT SEARCH CONFIGURATION english
ALTER MAPPING FOR word, asciiword WITH xsyn, english_stem;
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: