在 CONTAINS 谓词中使用通配符

CONTAINS 谓词支持使用星号 (*) 作为通配符来表示单词和短语。 只能在单词或短语末尾添加星号。 星号的存在使得前缀匹配模式得以启动。 在此模式下,如果列包含指定的搜索词后跟零个或多个其他字符,则返回匹配项。

如果提供了一个短语,则短语中包含的每个单词都被视为单独的前缀。 因此,指定了一个 "local wine*" 前缀字词的查询,将匹配所有包含 "local winery"、"locally wined and dined" 等文本的行。

例子

字词匹配

此示例匹配 FileName 列中文件名中任何以“serv”开头的文件。

...WHERE CONTAINS(System.FileName, '"serv*"')

匹配字词的示例包括“服务器” (server)、“服务器” (servers) 和“服务” (service)。

短语匹配

此示例将文档与 FileName 列中以“comp”开头且下一个单词以“serv”开头的任何短语进行匹配。

...WHERE CONTAINS(System.FileName, '"comp serv*"')

匹配短语的示例包括“计算机服务器”、“计算机伺服器”和“竞争对手的服务”。

后缀匹配(不支持)

星号仅适用于前缀匹配,只能放置在单词或短语的末尾;它不适用于后缀匹配。 以下语法无效,并且与 FileName 列中以“serve”结尾的任何单词的文档不匹配。

-- DO NOT USE.
WHERE CONTAINS(System.FileName, '"*serve"')

参考

FREETEXT 谓词

WHERE 子句