Transact-SQL 参考

FREETEXTTABLE

为下述列返回含有零行、一行或多行的表:这些列含有基于字符的数据类型,其中的值符合指定的 freetext_string 中文本的含义,但不符合确切的表达方式。FREETEXTTABLE 可以在 SELECT 语句的 FROM 子句中象常规表名称一样进行引用。

使用 FREETEXTTABLE 的查询指定 freetext 类型的全文查询,这些查询为每行返回一个关联等级值 (RANK)。

语法

FREETEXTTABLE ( table , { column | * } , 'freetext_string' [ , top_n_by_rank ] )

参数

table

标记为用于全文查询的表的名称。table 可以是一部分、两部分或三部分组成的数据库对象名称。有关更多信息,请参见 Transact-SQL 语法规则table 不能指定服务器名称,也不能用于对链接服务器的查询。

column

驻留在 table 中、要搜索的列的名称。具有字符串数据类型的列是可进行全文检索的有效的列。

*

指定所有已注册用于全文检索的列均用于搜索给定的 freetext_string

freetext_string

要在指定的 column 中搜索的文本。不能使用变量。

top_n_by_rank

如果指定整型值 n,FREETEXTTABLE 仅返回最前面的 n 个匹配项,并按等级排序。

注释

FREETEXTTABLE 使用与 FREETEXT 谓词相同的搜索条件。

同 CONTAINSTABLE 一样,返回的表包含名为 KEYRANK 的列,在查询中引用这些列以获得适当行并使用行等级值。

如果兼容级别小于 70,则 FREETEXTTABLE 无法被识别为关键字。有关更多信息,请参见 sp_dbcmptlevel

权限

FREETEXTTABLE 只能由对指定表或表中所引用的列具有适当的 SELECT 特权的用户进行唤醒调用。

示例

此示例返回所有与 sweet、candy、bread、dry 和 meat 相关的类别的名称和描述。

USE Northwind
SELECT FT_TBL.CategoryName, 
   FT_TBL.Description,
   KEY_TBL.RANK
FROM Categories AS FT_TBL INNER JOIN
   FREETEXTTABLE(Categories, Description, 
   'sweetest candy bread and dry meat') AS KEY_TBL
   ON FT_TBL.CategoryID = KEY_TBL.[KEY]
GO

请参见

CONTAINS

CONTAINSTABLE

FREETEXT

对 SQL Server 数据进行全文查询

行集函数

SELECT

WHERE