SharePoint 搜索 SQL 语法中的 FREETEXT 谓词

上次修改时间: 2010年4月21日

适用范围: SharePoint Server 2010

WHERE 子句的一部分,支持搜索文本列中的单词和短语。

FREETEXT
([<full-text_column>,]'<freetext_condition>'[,<LCID>])…

备注

使用 FREETEXT 谓词查找整列中包含搜索单词的不同组合的文档。与之相反的是,应使用 CONTAINS 谓词查找"完全"匹配项。也可将短语置于双引号内,使用 FREETEXT 谓词执行完全短语匹配。

全文本列引用是可选的。出于相关性目的,我们建议您在此处指定 DEFAULTPROPERTIES。例如:

…WHERE FREETEXT(DEFAULTPROPERTIES, 'computer software')

或者,也可以指定单个列或列分组别名,依此对 FREETEXT 谓词进行测试。这将搜索所有创建索引的文本属性。虽然不要求该列具有文本属性,但如果列属于其他数据类型,结果可能没有意义。列名称可以是常规标识符或带分隔符的标识符,必须使用逗号将其与条件隔开。如果未提供全文条件,则使用 Contents 列,它是文档的正文。

也可以用星号 (*) 指定全文本列引用,指示所有列。

您可以指定 FREETEXT 谓词的搜索区域设置。这样可指示搜索引擎,为搜索查询使用适当的分词系统、干扰词列表、词形变化和排序顺序。若要指定区域设置,可提供 Microsoft Windows 标准区域设置标识符,也称为 LCID。例如,美国英语的 LCID 为 1033。将 LCID 置于 FREETEXT 子句括号内的最后一项。有关搜索和语言的重要信息,请参阅SharePoint 搜索 SQL 查询语言信息中的"使用本地化搜索"。

备注

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

必须用单引号将 <freetext_condition> 部分括起来,且必须包含一个或多个搜索词。FREETEXT 谓词不支持逻辑运算。要作为单个单词搜索短语,可用双引号将短语括起来。

FREETEXT 谓词的默认行为是,查询返回以下条件为真的文档:

  • 此文档至少在一个指定列中包含所有搜索词。

  • Contents 列中必须同时具有其中一个搜索词,该列为包含文档正文的属性。

搜索词不必按任何特定顺序出现。包含多个搜索词的文档可能具有较高级别的列值。

重要注释重要说明

我们建议您只在搜索查询中使用一个 FREETEXT 谓词。如果使用多个实例,查询执行时不会出错,但结果的分级可能不会太理想。

FREETEXT 谓词还支持包含"+"和排除"-"字符,并使用与关键字语法相同的匹配规则。有关匹配规则的信息,请参阅在关键字查询中使用运算符中的"包含和排除运算符"。

示例

以下示例搜索包含"computer"、"software"和"hardware"的文档。

…WHERE FREETEXT('computer software hardware')

备注

此行为不同于 FREETEXT 在 SharePoint Portal Server 2003 中的工作方式。

您可以在同一 FREETEXT 谓词中使用单词和短语匹配。以下示例搜索包含单词"software"和短语"computer hardware"的文档。

…FREETEXT('software "computer hardware"')

当执行具有缩约形式的查询,同时使用 FREETEXT 谓词时,必须对缩约形式中的引号进行转义;使用 CONTAINS 谓词时,则不必如此。

例如,以下语法将会失败:

…WHERE FREETEXT(*,'"We'll always have Paris"')

正确的语法包含两个单引号。

以下语法将会成功:

…WHERE FREETEXT(*,'"We''ll always have Paris"')

以下示例搜索包含搜索词"hardware"和"store"、但不包含搜索词"computer"的文档。

…WHERE FREETEXT(DEFAULTPROPERTIES, 'hardware store -computer')

备注

FREETEXT 谓词不支持使用属性筛选器。

以下示例不会搜索其中的作者属性包含搜索词"John"的文档;相反,它会搜索包含搜索词"author"、"John"、"computer"和"hardware"的文档。

WHERE FREETEXT(DEFAULTPROPERTIES, 'author:John computer hardware')

以下示例搜索其中的作者属性包含搜索词"John"并在其他位置包含搜索词"computer"和"hardware"的文档。

…WHERE CONTAINS(author, 'John') AND FREETEXT(DEFAULTPROPERTIES, 'computer hardware')

备注

该查询的结果分级只基于 FREETEXT 谓词。

本节内容

SharePoint 搜索 SQL 语法中的干扰词和 FREETEXT 谓词

请参阅

引用

SharePoint 搜索 SQL 语法中的全文谓词

SharePoint 搜索 SQL 语法中的 CONTAINS 谓词

SharePoint 搜索 SQL 语法中的 WITH -- AS 组别名谓词