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部分必须用单引号引起来表示单个单词或短语的双引号,并且由一个或多个使用逻辑运算符 ANDOR 组合的内容搜索词组成。 可以在 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 不带空格或其他标点符号的单个单词。 不需要双引号。
...WHERE CONTAINS ('computer')
短语 多个单词或包含的空格。

...WHERE CONTAINS ('“computer software”') 

或者,若要使用双引号::

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

通配符 带有星号的单词或短语 (*) 添加到末尾。 有关详细信息,请参阅 在 CONTAINS 谓词中使用通配符

...WHERE CONTAINS ('“compu*”') 

Matches "computer", "computers", "computation", and "compulsory"

全文列 要与其匹配剩余查询的属性列名称。
...WHERE CONTAINS (System.Author,'"James" OR "Juan"')
Boolean 使用布尔运算符 ANDORNOT 组合的单词、短语和通配符字符串。 将布尔术语括在双引号中。

...WHERE CONTAINS ('“计算机监视器”和“软件程序”和“安装组件”') 

...WHERE CONTAINS (' “computer” and “software” and “install” ' )

...WHERE CONTAINS ('"computer software install"')

Near 由函数 NEAR 分隔的字词、短语或通配符。 有关详细信息,请参阅 NEAR Term
...WHERE CONTAINS
('"computer" NEAR "software"')
FormsOf 匹配单词和该单词的拐点版本。 有关详细信息,请参阅 FORMSOF 术语

...WHERE CONTAINS ('FORMSOF (INFLECTIONAL, “happy”) ) 

Matches "happy", "happier", "happiest", "happily", and so on.

IsAbout 合并多个字词、短语或通配符搜索词的匹配结果。 可以选择对每个搜索词进行加权。 可以选择指定排名计算方法,该方法将文档的权重和项数组合在一起。 有关详细信息,请参阅 ISABOUT 术语
...WHERE CONTAINS
('ISABOUT ( "computer" WEIGHT (0.75) ,
    "software" WEIGHT (0.25) ,
    "development" WEIGHT (0.255)
 ) RANKMETHOD INNER PRODUCT
')

本节包括下列主题:

参考

WHERE 子句

概念性

全文谓词

非全文谓词