是个谓词,用于搜索含有基于字符的数据类型的列,其中的值符合在搜索条件中所指定文本的含义,但不符合表达方式。使用 FREETEXT 时,全文查询引擎内部将 freetext_string 拆分为若干个搜索词,并赋予每个词以不同的加权,然后查找匹配。
FREETEXT ( { column | * } , 'freetext_string' )
column
已经注册全文检索的特定列的名称。具有字符串数据类型的列是可进行全文检索的有效的列。
*
指定所有已注册用于全文检索的列均用于搜索给定的 freetext_string。
freetext_string
要在指定的 column 中进行搜索的文本。可以输入任何文本,包括单词、短语或句子。所输入的文本与语法无关。
使用 FREETEXT 的全文查询没有使用 CONTAINS 的全文查询精度高。Microsoft® SQL Server™ 全文检索引擎识别重要的字词和短语。保留关键字或通配符字符都不具有特殊含义,而它们指定在 CONTAINS 谓词的 <contains_search_condition> 参数中时则通常具有含义。
当兼容性级别小于 70 时,FREETEXT 不被识别为关键字。有关更多信息,请参见 sp_dbcmptlevel。
下例搜索产品描述中含有与 bread、candy、dry 和 meat 相关的词语的所有产品类别,如 breads、candies、dried 和 meats 等。
USE Northwind
GO
SELECT CategoryName
FROM Categories
WHERE FREETEXT (Description, 'sweetest candy bread and dry meat' )
GO
下例使用变量而不是特定的搜索术语。
USE pubs相关文章
GO
DECLARE @SearchWord varchar(30)
SET @SearchWord ='Moon'
SELECT pr_info FROM pub_info WHERE FREETEXT(pr_info, @SearchWord)