您的位置:58编程 > PostgreSQL dict_xsyn

PostgreSQL dict_xsyn

2023-04-30 07:33 PostgreSQL dict_xsyn

 PostgreSQL dict_xsyn

F.12.1. 配置
F.12.2. 用法

dict_xsyn(扩展同义词字典)是一个附加全文搜索字典模板的例子。这种字典类型将词替换为它们的同义词分组,并且让使用其任一同义词进行搜索变得可能。

F.12.1. 配置

一个dict_xsyn词典接受以下选项:

  • matchorig控制该词典是否接受原生词。默认为true

  • matchsynonyms控制该词典是否接受同义词。默认为false

  • keeporig控制原生词是否被包括在词典的输出中。默认为true

  • keepsynonyms控制同义词是否被包括在词典的输出中。默认为true

  • rules是包含同义词列表的文件的基本名。这个文件必须被存储在$SHAREDIR/tsearch_data/(其中$SHAREDIR表示PostgreSQL安装的共享数据目录)中。它的名称必须以.rules结束(这不包括在 rules参数中)。

规则文件具有下面的格式:

  • 每一行表示一个单一词的同义词分组,它在该行中首先被给出。同义词被空白分隔,这样:

    word syn1 syn2 syn3
    

  • 井号(#)是注释定界符。它可以出现在一行中的任何位置。该行的剩余部分将被跳过。

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

F.12.2. 用法

安装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}

现实世界的用法将涉及将它包括在一个第 12 章中描述的文本搜索配置中。看起来像这样:

ALTER TEXT SEARCH CONFIGURATION english
    ALTER MAPPING FOR word, asciiword WITH xsyn, english_stem;


阅读全文
以上是58编程为你收集整理的 PostgreSQL dict_xsyn全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 58编程 58biancheng.com 版权所有 联系我们
桂ICP备12005667号-32 Powered by CMS