Dict xsyn
From PostgreSQL 中文维基, PostgreSQL 中文站, PostgreSQL 中国社区, PostgreSQL Chinese community
[编辑] dict_xsyn
dict_xsyn (扩展的同义词字典)是用于全文索引的附加字典模版的例子。这个字典类型用它们的同义词组替换词本身,因此就可能用词的同义词进行搜索。
[编辑] Configuration
一个 dict_xsyn 字典接受下面的选项:
- keeporig 控制是否包括原始词(如果为 true),还是只包含同义词(如果 false)。缺省是 true。
- rules是包含同义词的文件的一个基础名。这个文件必须存储在 $SHAREDIR/tsearch_data/ (这里的 $SHAREDIR 意思是 PostgreSQL 安装的共享数据目录)。它的名字必须以 .rules 结尾(这部分不能包括在规则参数里)。
规则文件的格式如下:
- 每行都代表一个词的同义词,这个词在第一行给出。同义词用空白分隔,也就是:
word syn1 syn2 syn3
- 井号符号(#)是注释分隔符。它可以出现在一行的任何位置。该行其余部分将被忽略。
比如,可以参阅 xsyn_sample.rules,它安装在 $SHAREDIR/tsearch_data/。
[编辑] 用法
运行安装脚本将会创建一个基于本包的 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
-----------------------
{word,syn1,syn2,syn3}
不过在现实世界里的使用会包括在文本搜索里包含它,如第十二章描述的那样。看起来会是这样:
ALTER TEXT SEARCH CONFIGURATION english
ALTER MAPPING FOR word, asciiword WITH xsyn, english_stem;
