近似搜索

当要针对包含多个词的词组执行词搜索时,搜索引擎将返回包含线索中的一个或多个词的所有行。

例如,假设您要搜索词组 multimedia document editor,如以下示例中所示:
SELECT id, description FROM videos
    WHERE etx_contains(description,
    Row('multimedia document editor',
        'SEARCH_TYPE = WORD'));
如果您对以下行执行该搜索,那么搜索引擎将报告一个匹配项,即使这个句子极可能对您毫无意义(因为它与多媒体文档编辑器毫无关系):
The multimedia application is now in formal beta testing.
或者,如果使用精确词组搜索,那么搜索引擎无法返回类似于以下词组的行:
The editor for multimedia documents .....
近似搜索通过允许您指定可出现在两个或多个搜索词之间的非搜索词的数量来解决这些问题。例如,请考虑以下词搜索:
SELECT id, description FROM videos
    WHERE etx_contains(description,
    Row('multimedia document editor',
        'SEARCH_TYPE = PROX_SEARCH(8)'));
最后一行使用了 PROX_SEARCH 设置,指定搜索引擎将只返回在这 3 个搜索词彼此之间出现的词个数少于或等于 8 个时的行。假设您针对下列样本文本执行该查询:
The multimedia application is now in formal beta testing. A text editor........
在此示例中,搜索引擎不会返回此行,因为其中 multimediaeditor 之间超过 8 个词。但是,搜索引擎会返回下面的行,因为搜索词之间的词少于 8 个:
The editor for multimedia documents .....
由于通过 PROX_SEARCH 指定的值少于要搜索的词个数,以下语句始终无法产生结果:
SELECT id, description FROM videos
    WHERE etx_contains(description ,
    Row('multimedia document editor',
        'SEARCH_TYPE = PROX_SEARCH(2)'));