企业级搜索 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 谓词中使用通配符