同义词列表由一个根词和一个或多个与根词含义相近的词组成。当不知道搜索文本的精确内容时,同义词列表很有用。
例如,假如您想要搜索 videos 表的 description 列。您知道 description 列包含对解释如何使用多媒体文档编辑器的视频的引用,但是您不确定是否始终将编辑器描述为多媒体 document 编辑器或多媒体 text 编辑器。
要执行该搜索,请使用词 document 和 text 的同义词列表条目。
SELECT id, description from videos
WHERE etx_contains(description,
Row('document', 'MATCH_SYNONYM = syn_list'));
SELECT id, description from videos
WHERE etx_contains(description,
Row('document', 'MATCH_SYNONYM = syn_list2'));
quick speedy fast
monitor terminal CRT screen
在该示例中,quick 和 monitor 是根词。在要使用的同义词中,必须要有一个词作为根词存在。这意味着,如果要搜索 speedy 的同义词,那么必须将它本身列举为词根;它不只是作为 quick 的同义词在同义词列表中出现。
$INFORMIXDIR/extend/ETX.version/wordlist/etx_thesaurus.txt
其中,version 是指您计算机上安装的 DataBlade 模块的当前版本。如果查询引用的是 etx_thesaurus 同义词列表,而这个列表并不存在,那么 Informix Excalibur Text Search DataBlade 模块 会返回一个错误。
例如,假设您在执行文本搜索并指定了 PATTERN_ALL 和 MATCH_SYNONYM 调整参数,并且指定的同义词列表包含根字 abandon 以及一个同义词 surrender。该搜索将返回包含词 abanden(根字 abandon 的模式匹配项)的文档,但不会返回包含词 surender(同义词 surrender 的模式匹配项)的文档。