IBM® Informix® Excalibur Text Search DataBlade® 模块 V1.31

同义词列表

同义词列表由一个根词和一个或多个与根词含义相近的词组成。当不知道搜索文本的精确内容时,同义词列表很有用。

例如,假如您想要搜索 videos 表的 description 列。您知道 description 列包含对解释如何使用多媒体文档编辑器的视频的引用,但是您不确定是否始终将编辑器描述为多媒体 document 编辑器或多媒体 text 编辑器。

要执行该搜索,请使用词 documenttext 的同义词列表条目。

当执行搜索时,要指示搜索引擎使用该词列表,请使用 MATCH_SYNONYM 调整参数,如下面示例所示:
SELECT id, description from videos
    WHERE etx_contains(description, 
    Row('document', 'MATCH_SYNONYM = syn_list'));
可以在数据库中维护多个同义词列表。通过将 MATCH_SYNONYM 设置为希望搜索引擎使用的同义词列表的名称,可以指定同义词列表。例如,在查询 videos 表时,要使 syn_list2 成为活动的同义词列表,请执行以下语句:
SELECT id, description from videos
    WHERE etx_contains(description, 
    Row('document', 'MATCH_SYNONYM = syn_list2'));
要创建同义词列表,首先需要创建包含根词和一个或多个同义词的操作系统文件,而且所有这些词都在同一行上,词之间用空格隔开。 文本行之间必须使用空行隔开。例如,下面是用于创建同义词列表的操作系统文件的一个可能引用:
quick speedy fast

monitor terminal CRT screen

在该示例中,quickmonitor 是根词。在要使用的同义词中,必须要有一个词作为根词存在。这意味着,如果要搜索 speedy 的同义词,那么必须将它本身列举为词根;它不只是作为 quick 的同义词在同义词列表中出现。

创建了同义词列表文件后,通过执行 etx_CreateSynWlst() 例程,可以让 IBM® Informix® Excalibur Text Search DataBlade® 模块知道该文件。
要点: 同义词文件中的文本行之间必须以空行隔开。如果您省略了空行,虽然 DataBlade Module 不会返回错误,但它在同义词匹配搜索期间不会找到任何同义词。
如果在 etx_contains() 运算符中指定了 MATCH_SYNONYM 调整参数,但未对其赋值,那么 etx_contains() 会引用名为 etx_thesaurus 的缺省同义词列表。您可以从您自己的同义词列表自行创建 etx_thesaurus 同义词列表,也可以根据 DataBlade Module 附带的、位于下列位置的标准英语同义词列表,创建一个同义词列表:
$INFORMIXDIR/extend/ETX.version/wordlist/etx_thesaurus.txt
其中,version 是指您计算机上安装的 DataBlade 模块的当前版本。

如果查询引用的是 etx_thesaurus 同义词列表,而这个列表并不存在,那么 Informix Excalibur Text Search DataBlade 模块 会返回一个错误。

要点: Informix Excalibur Text Search DataBlade 模块 仅找到了根词的模式匹配项,而不是其同义词的匹配项。

例如,假设您在执行文本搜索并指定了 PATTERN_ALL 和 MATCH_SYNONYM 调整参数,并且指定的同义词列表包含根字 abandon 以及一个同义词 surrender。该搜索将返回包含词 abanden(根字 abandon 的模式匹配项)的文档,但不会返回包含词 surender(同义词 surrender 的模式匹配项)的文档。


发送反馈 | 示例交流 | 故障诊断

要查找 PDF,请参阅 IBM Informix DataBlade Modules: Publication library in PDF
有关发行说明、文档说明和/或机器说明,请参阅发行说明页。
时间戳记 发行日期:2013 年 3 月