dict_xsyn
(扩展同义词字典)是一个附加全文搜索字典模板的例子。这种字典类型将词替换为它们的同义词分组,并且让使用其任一同义词进行搜索变得可能。
一个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
。
安装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;
F.27.1. 函数F.27.2. 配置参数 pg_prewarm模块提供一种方便的方法把关系 数据载入到操作系统缓冲区或者 PostgreSQL缓冲区。可以...
SQL 视图(Views) 视图是可视化的表。 本章讲解如何创建、更新和删除视图。SQL CREATE VIEW 语句 在 SQL 中,视图是基于 SQL 语...
SQL UNIQUE 约束SQL UNIQUE 约束 UNIQUE 约束唯一标识数据库表中的每条记录。 UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了...
SQL MID() 函数MID() 函数 MID() 函数用于从文本字段中提取字符。 SQL MID() 语法SELECT MID(column_na...
node.js模块的MySQL驱动程序为您提供了内置的连接池功能 假设您要创建一个具有5个连接的连接池:var pool = mysql.createPool({c...