Postgresql 中文操作指南
F.14. dict_xsyn — example synonym full-text search dictionary #
dict_xsyn(扩展同义词词典)是一个用于全文搜索的附加词典模板的示例。此词典类型用词组的同义词代替词,因此可以使用任何同义词来搜索一个词。
F.14.1. Configuration #
一个 dict_xsyn 词典接受以下选项:
规则文件的格式如下:
查看安装在 $SHAREDIR/tsearch_data/ 中的 xsyn_sample.rules,这是一个示例。
F.14.2. Usage #
安装 dict_xsyn 扩展会基于它创建一个文本搜索模板 xsyn_template 和一个词典 xsyn,并带有默认参数。您可以更改参数,例如
mydb# ALTER TEXT SEARCH DICTIONARY xsyn (RULES='my_rules', KEEPORIG=false);
ALTER TEXT SEARCH DICTIONARY
或基于模板创建新的词典。
要测试词典,您可以尝试
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}
实际使用中将包括在文本搜索配置中包括该选项,如 Chapter 12 所述。可能如下所示:
ALTER TEXT SEARCH CONFIGURATION english
ALTER MAPPING FOR word, asciiword WITH xsyn, english_stem;