模式搜索是一种考虑多种调换和替换的模糊搜索,它还返回线索的所有子字符串或超级字符串(superstring)。
超级字符串模式匹配是指在较大的词中找到线索的情况,比如,对线索 edit 进行搜索返回 editable。
子字符串模式匹配是指在较小的词中找到线索的一部分的情况,比如,对线索 irretrievable 进行搜索返回 retrievable。
要启用模式搜索,请将 PATTERN_ALL 调整参数传递给搜索引擎。
SELECT id, description FROM videos WHERE etx_contains(description, Row ('retrieve','PATTERN_ALL'));
图: 模式搜索示例
模式搜索不同于单个替换或调换搜索,因为模式搜索允许多个替换和调换。单个替换搜索返回的词与线索只有一个字母不同。 例如,通过 PATTERNS_SUBS 设置搜索词 travel 时,可能会返回 gravel。单个调换搜索返回包含一个调换的词。例如,通过 PATTERNS_SUBS 设置搜索词 travel 时,可能会返回 travle。
相反,对启用 PATTERN_ALL 的该同一线索执行搜索时,除返回 gravel 和 travle 外,还会返回诸如 traveled、travelled、unraveled 和 travvel 的词。文本搜索引擎为启用 PATTERNS_SUBS 或 PATTERN_TRANS 时的匹配词分配的词分数要比启用 PATTERN_ALL 时的匹配词高。
如果要启用基本模式匹配,那么请使用 PATTERN_BASIC 调整参数。 搜索将根据 WORD_SCORE 的值返回调换、替换,以及超级字符串和子字符串模式匹配项。
PATTERN_ALL 调整参数等同于一次性指定 PATTERN_BASIC、PATTERN_SUBS 和 PATTERN_TRANS 三个参数。