模式搜索

模式搜索是一种考虑多种调换和替换的模糊搜索,它还返回线索的所有子字符串或超级字符串(superstring)。

超级字符串模式匹配是指在较大的词中找到线索的情况,比如,对线索 edit 进行搜索返回 editable

子字符串模式匹配是指在较小的词中找到线索的一部分的情况,比如,对线索 irretrievable 进行搜索返回 retrievable

要启用模式搜索,请将 PATTERN_ALL 调整参数传递给搜索引擎。

例如,要对词 retrieve 执行模式搜索,请执行以下 SQL 语句:
SELECT id, description FROM videos
    WHERE etx_contains(description,
    Row ('retrieve','PATTERN_ALL'));
针对以下示例中所示的搜索文本,搜索引擎会返回包含 retrievedretrievalretreive 的行。由于缺省词分数阈值是 70,所以不会找到词 irretrievable。但是,如果使用 WORD_SCORE 调整参数来设置较低的词分数,那么可能会返回词 irretrievable

图: 模式搜索示例


显示将 PATTERN_ALL 调整参数用于文本“retrieve”的模式。videos 表的命中列表是包含词“retrieval”、“retrieved”和“retreive”的行。

模式搜索不同于单个替换或调换搜索,因为模式搜索允许多个替换和调换。单个替换搜索返回的词与线索只有一个字母不同。 例如,通过 PATTERNS_SUBS 设置搜索词 travel 时,可能会返回 gravel。单个调换搜索返回包含一个调换的词。例如,通过 PATTERNS_SUBS 设置搜索词 travel 时,可能会返回 travle

相反,对启用 PATTERN_ALL 的该同一线索执行搜索时,除返回 graveltravle 外,还会返回诸如 traveledtravelledunraveledtravvel 的词。文本搜索引擎为启用 PATTERNS_SUBS 或 PATTERN_TRANS 时的匹配词分配的词分数要比启用 PATTERN_ALL 时的匹配词高。

如果要启用基本模式匹配,那么请使用 PATTERN_BASIC 调整参数。 搜索将根据 WORD_SCORE 的值返回调换、替换,以及超级字符串和子字符串模式匹配项。

PATTERN_ALL 调整参数等同于一次性指定 PATTERN_BASIC、PATTERN_SUBS 和 PATTERN_TRANS 三个参数。