CONTAINS 谓词
CONTAINS 谓词是 WHERE 子句的一部分,支持在文本列中搜索字词和短语。 CONTAINS 谓词具有匹配字词、匹配拐点形式、使用通配符进行搜索以及使用邻近搜索的功能。 还可以在 CONTAINS 谓词中应用权重,以设置找到搜索词的列的重要性。 CONTAINS 谓词更适合完全匹配,与 FREETEXT 谓词形成鲜明对比,这更适合查找包含整个列中分布的搜索词组合的文档。 搜索不区分大小写。
以下是 CONTAINS 谓词的基本语法:
...CONTAINS(["<fulltext_column>",]'<contains_condition>'[,<LCID>])...
fulltext_column引用是可选的。 使用它,可以将搜索限制为测试 CONTAINS 谓词的单个列或列组。 当全文本列指定为“ALL”或“*”时,将搜索所有索引文本属性。 尽管列不是文本属性所必需的,但如果列是其他数据类型,则结果可能毫无意义。 列名称可以是常规或分隔 标识符,必须用逗号将其与条件分开。 如果未指定全文列,则使用 System.Search.Contents 列(文档正文)。
谓词的 LCID 部分指定搜索区域设置。 这会指示搜索引擎对搜索查询使用适当的断字符和拐点表单。 若要指定区域设置,请提供 Windows 标准语言代码标识符(LCID)。 例如,1033 是美国英语的 LCID。 将 LCID 作为 CONTAINS 子句括号中的最后一项放置。 有关搜索和语言的重要信息,请参阅 使用本地化搜索。
注意
默认搜索区域设置是系统默认区域设置。
contains_condition部分必须用单引号括住短语的单引号或双引号,由一个或多个内容搜索词组成,这些搜索词使用逻辑运算符 AND 或 OR。 可以在 AND 运算符后使用可选的一元运算符 NOT 来否定内容搜索词的逻辑值。
注意
NOT 运算符只能在 AND之后发生。 如果只有一个匹配条件或在 OR 运算符之后,则不能使用 NOT 运算符。
可以使用括号对内容搜索词进行分组和嵌套。 下表描述了逻辑运算符的优先级顺序。
顺序(优先) | 逻辑运算符 |
---|---|
第一个 (最高) | NOT |
第二 | 和 |
第三(最低) | 或 |
同一类型的逻辑运算符是关联的,并且没有指定的计算顺序。 例如,(A AND B) AND (C AND D) 可以计算 (B AND C) AND (A AND D), 逻辑结果没有变化。
下表描述了内容搜索词的类型。
类型 | 描述 | 例子 | |
---|---|---|---|
词 | 一个没有空格或其他标点符号的单词。 不需要双引号。 |
|
|
短语 | 多个单词或包含的空格。 |
|
|
通配符 | 带星号的单词或短语添加到末尾。 有关详细信息,请参阅 CONTAINS 谓词 中使用通配符。 |
|
|
全文列 | 要与其匹配剩余查询的属性列名称。 |
|
|
布尔 | 使用布尔运算符 AND、OR或 NOT组合的单词、短语和通配符字符串。 将布尔词括在双引号中。 |
|
|
近 | 用函数 NEAR 分隔的单词、短语或通配符。 有关详细信息,请参阅 NEAR Term。 |
|
|
FormsOf | 匹配一个单词和该单词的拐折版本。 有关详细信息,请参阅 FORMSOF 术语。 |
|
|
IsAbout | 将匹配结果与多个单词、短语或通配符搜索词组合在一起。 可以选择对每个搜索词进行加权。 可以选择指定排名计算方法,该方法合并了文档匹配的权重和项数。 有关详细信息,请参阅 ISABOUT 术语。 |
|
本部分包括以下主题:
- 在 CONTAINS 谓词 中使用通配符
- FORMSOF 术语
- ISABOUT 术语
- NEAR Term