FREETEXT 谓词

FREETEXT 谓词是 WHERE 子句的一部分,支持在文本列中搜索字词和短语。 使用 FREETEXT 谓词查找包含分布在指定内容或列中的搜索词组合的文档。 若要获取排名值,请将 System.Search.Rank 作为 SELECT 语句中的列包含为 relevence 的排名。

FREETEXT 谓词具有以下语法:

FREETEXT
(["<fulltext_column>",]'<freetext_condition>'[,<LCID>])...

全文列引用是可选的。 借助它,可以指定单个列或测试 FREETEXT 谓词所依据的 列分组别名 。 将全文列指定为“ALL”或“*”时,将搜索所有索引文本属性。 虽然列不一定是文本属性,但如果列是其他数据类型,则结果可能毫无意义。 列名称可以是常规标识符,也可以是分隔 标识符,必须用逗号将其与条件分隔开。 如果未提供全文条件,则使用文档正文的“内容”列。

可以指定搜索区域设置来标识搜索查询的相应断字符和转折形式。 有效的区域设置值是 Windows 标准语言代码标识符 (LCID) 。 例如,1033 是美国英语的 LCID。 将 LCID 作为 FREETEXT 子句括号中的最后一项。 有关搜索和语言的重要信息,请参阅 使用本地化搜索

注意

默认搜索区域设置是系统默认的区域设置。

 

必须将自由文本条件部分括在单引号中,并且它必须包含一个或多个搜索词。 FREETEXT 谓词不支持逻辑操作。 若要像搜索单个单词一样搜索短语,请将该短语括在双引号中。

使用 FREETEXT 谓词时,搜索查询结果将返回包含所有搜索词的文档。 术语不需要按任何特定顺序显示。 包含更多搜索词的文档具有较高的排名列值。

示例

以下示例搜索包含“computer”、“software”、“hardware”或这些单词组合的文档:

WHERE FREETEXT('computer software hardware')

注意

不能在同一 FREETEXT 谓词中同时使用单字匹配和短语匹配。

 

使用收缩执行查询时,在使用 FREETEXT 时,必须转义收缩中的引号,但不能在使用 CONTAINS 时转义。

例如,以下语法失败:

WHERE FREETEXT(*,'"We'll meet next week"')

正确的语法包括两个单引号,而不是双引号。

以下语法成功:

WHERE FREETEXT(*,'"We''ll meet next week"')

参考

CONTAINS 谓词

WHERE 子句

概念性

非全文谓词