企业级搜索 SQL 语法中的 CONTAINS 谓词

WHERE 子句的一部分,支持搜索文本列中的单词和短语。

…CONTAINS([<full-text_column>,]'<contains_condition>'[,<LCID>])…

Remarks

CONTAINS 谓词能够匹配单词、匹配单词的词形变化、使用通配符进行搜索以及执行邻近搜索。与 FREETEXT 谓词相比,CONTAINS 谓词更适合完全匹配;而前者则更适合查找整个列中包含搜索单词不同组合的文档。

全文本列引用是可选的。通过此引用,您可以指定一列或一组列,并依此对 CONTAINS 谓词进行测试。当全文本列指定为“ALL”或“*”时,将搜索所有创建索引的文本属性。虽然不要求该列具有文本属性,但如果列属于其他数据类型,结果可能没有意义。列名称可以是常规标识符或是带分隔符的标识符,并且您必须用逗号将其与条件隔开。如果没有指定全文本列,则使用 Contents 列,它是文档的正文。

也可以用星号 (*) 指定全文本列引用,指示所有列。

您可以指定 CONTAINS 谓词的搜索区域设置。这样可指示搜索引擎,为搜索查询使用适当的分词系统、干扰词列表、词形变化和排序顺序。若要指定区域设置,可提供 Microsoft Windows 标准区域设置标识符,也称为 LCID。例如,美国英语的 LCID 为 1033。将 LCID 置于 CONTAINS 子句括号内的最后一项。有关搜索和语言的重要信息,请参阅企业级搜索 SQL 查询语言信息中的“使用本地化搜索”。

备注

默认搜索区域设置是系统默认区域设置。

对于单个单词,必须用单引号将 CONTAINS 条件部分括起来;对于短语,则用双引号括起来;它必须包含一个或多个使用逻辑运算符 AND 或 OR 组合的内容搜索词。可以使用可选的一元运算符 NOT 排除某个内容搜索词的逻辑值。

NOT 只能置于 AND 之后。如果只有一个匹配条件,或者位于 OR 运算符之后,则不能使用 NOT 运算符。

可以使用括号分组和嵌套内容搜索词。下表描述逻辑运算符优先顺序。

优先顺序

逻辑运算符

第一级(最高)

NOT

第二级

AND

第三级(最低)

OR

相同类型的逻辑运算符是相互关联的,没有指定的计算顺序。例如,(A AND B) AND (C AND D) 可的方式计算可以是 (B AND C) AND (A AND D),且逻辑结果不变。

下表介绍内容搜索词的类型。

类型

说明

示例

单词

单个词,没有空格或其他标点符号。不需要双引号。

…WHERE CONTAINS ('computer')

短语

多个单词,或者包括空格。

…WHERE CONTAINS

('computer software')

或包括双引号:

… WHERE CONTAINS('computer ""science""')

通配符

单词或短语,末尾添加星号 (*)。有关详细信息,请参阅在企业级搜索 SQL 语法的 CONTAINS 谓词中使用通配符

…WHERE CONTAINS ('"compu*"')

匹配项包括“computer”、“computers”、“computation”和“compulsory”。

布尔值

使用布尔运算符 AND、OR 或 NOT 组合的单词、短语和通配符字符串。布尔条件用双引号括起来。

…WHERE CONTAINS ('computer monitor' AND 'software program'

AND 'install component')

… WHERE CONTAINS ('computer'

AND 'software' AND 'install')

…WHERE CONTAINS ('computer software install')

Near

用函数 NEAR 分隔的单词、短语或通配符。有关详细信息,请参阅企业级搜索 SQL 语法中的 NEAR 术语

…WHERE CONTAINS

('computer' NEAR 'software')

FormsOf

匹配单词及其词形变化。有关详细信息,请参阅企业级搜索 SQL 语法中的 FORMSOF 术语

…WHERE CONTAINS ('FORMSOF

(INFLECTIONAL, "happy"))

匹配项包括“happy”、“happier”、“happiest”、“happily”等。

IsAbout

组合包含多个单词、短语或通配符搜索词的匹配结果。有关详细信息,请参阅企业级搜索 SQL 语法中的 ISABOUT 术语

…WHERE CONTAINS ('ISABOUT ( "computer","software","development") ')

本节内容

企业级搜索 SQL 语法中的干扰词和 CONTAINS 谓词

在企业级搜索 SQL 语法的 CONTAINS 谓词中使用通配符

企业级搜索 SQL 语法中的 FORMSOF 术语

企业级搜索 SQL 语法中的 ISABOUT 术语

企业级搜索 SQL 语法中的 RANKMETHOD 条件

企业级搜索 SQL 语法中的 NEAR 术语

See Also

参考

企业级搜索 SQL 语法中的全文谓词

企业级搜索 SQL 语法中的 WHERE 子句