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部分必须用单引号括住短语的单引号或双引号,由一个或多个内容搜索词组成,这些搜索词使用逻辑运算符 ANDOR。 可以在 AND 运算符后使用可选的一元运算符 NOT 来否定内容搜索词的逻辑值。

注意

NOT 运算符只能在 AND之后发生。 如果只有一个匹配条件或在 OR 运算符之后,则不能使用 NOT 运算符。

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

顺序(优先) 逻辑运算符
第一个 (最高) NOT
第二
第三(最低)

同一类型的逻辑运算符是关联的,并且没有指定的计算顺序。 例如,(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"" "')

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

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

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

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

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

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

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

用函数 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 子句

概念

Full-Text 谓词

非Full-Text 谓词