CONTAINS 谓词
CONTAINS 谓词是 WHERE 子句的一部分,支持在文本列中搜索字词和短语。 CONTAINS 谓词具有匹配字词、匹配单词的拐点形式、使用通配符进行搜索和使用邻近搜索的功能。 还可以在 CONTAINS 谓词中应用权重,以设置找到搜索词的列的重要性。 与 FREETEXT 谓词相比,CONTAINS 谓词更适合精确匹配,后者更适合查找包含整个列中分布的搜索词组合的文档。 搜索不区分大小写。
下面是 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 |
Second | AND |
第三 (最低) | OR |
同一类型的逻辑运算符是关联运算符,并且没有指定的计算顺序。 例如, (A AND B) AND AND (C AND D) 可以 (B AND C) AND AND (A AND D) 计算,而逻辑结果没有变化。
下表描述了内容搜索词的类型。
类型 | 说明 | 示例 | |
---|---|---|---|
Word | 不带空格或其他标点符号的单个单词。 不需要双引号。 |
|
|
短语 | 多个单词或包含的空格。 |
|
|
通配符 | 带有星号的单词或短语 (*) 添加到末尾。 有关详细信息,请参阅 在 CONTAINS 谓词中使用通配符。 |
|
|
全文列 | 要与其匹配剩余查询的属性列名称。 |
|
|
Boolean | 使用布尔运算符 AND、 OR 或 NOT 组合的单词、短语和通配符字符串。 将布尔术语括在双引号中。 |
|
|
Near | 由函数 NEAR 分隔的字词、短语或通配符。 有关详细信息,请参阅 NEAR Term。 |
|
|
FormsOf | 匹配单词和该单词的拐点版本。 有关详细信息,请参阅 FORMSOF 术语。 |
|
|
IsAbout | 合并多个字词、短语或通配符搜索词的匹配结果。 可以选择对每个搜索词进行加权。 可以选择指定排名计算方法,该方法将文档的权重和项数组合在一起。 有关详细信息,请参阅 ISABOUT 术语。 |
|
本节包括下列主题: