F.12. dict_xsyn

dict_xsyn(扩展同义词词典)是用于全文搜索的附加词典模板的示例。这种字典类型将单词替换为其同义词组,因此可以使用其任何同义词来搜索单词。

F.12.1. Configuration

dict_xsyn词典接受以下选项:

规则文件具有以下格式:

word syn1 syn2 syn3

例如,查看安装在$SHAREDIR/tsearch_data/中的xsyn_sample.rules

F.12.2. Usage

安装dict_xsynextensions 后,将使用默认参数创建文本搜索模板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;
上一章 首页 下一章