sp_fulltext_keymappings (Transact-SQL)
适用于: SQL Server Azure SQL 托管实例 分析平台系统 (PDW)
返回文档标识符 (DocId) 和全文键值之间的映射。 DocId 列包含一个 bigint 整数的值,该整数映射到全文索引表中的特定全文键值。 满足搜索条件的 DocId 值将从全文引擎传递到数据库引擎,在数据库引擎中,它们被映射到要查询的基表中的全文键值。 全文键列是表的某一列上必需的唯一索引。
语法
sp_fulltext_keymappings { table_id | table_id , docId | table_id , NULL , key }
[ ; ]
参数
table_id
全文索引表的对象 ID。 如果指定无效 table_id,则返回错误。 有关获取表的对象 ID 的信息,请参阅 OBJECT_ID。
docId
对应于键值的内部文档标识符(DocId)。 无效 的 docId 值不返回任何结果。
键
指定表中的全文键值。 无效的 key 值不会返回任何结果。 有关全文键值的信息,请参阅 创建和管理全文索引。
返回代码值
无。
结果集
列名称 | 数据类型 | 说明 |
---|---|---|
DocId |
bigint | 对应于键值的内部文档标识符 (DocId) 列。 |
Key |
1 | 指定表中的全文键值。 如果在映射表中不存在任何全文键,则返回一个空的行集。 |
1 Key 的数据类型与基表中全文键列的数据类型相同。
权限
此函数是公共的,不需要任何特殊权限。
注解
下表说明了使用一个、两个或三个参数的效果。
此参数列表... | 是否有此结果... |
---|---|
table_id | 仅 使用 table_id 参数调用时, sp_fulltext_keymappings 返回指定基表中的所有全文键(键)值,以及对应于每个键的 DocId。 包括挂起删除的键。此函数可用于排查各种问题。 当所选全文键不是整数数据类型时,它可用于查看全文索引内容。 这涉及到将结果 sp_fulltext_keymappings 与结果 sys.dm_fts_index_keywords_by_document 联接在一起。 有关详细信息,请参阅 sys.dm_fts_index_keywords_by_document。但是,一般情况下,我们建议使用指定特定全文键或 DocId 的参数执行 sp_fulltext_keymappings (如果可能)。 这比返回整个键映射更有效,尤其是对于返回整个键映射的性能成本可能很大的大型表。 |
table_id,docId | 如果仅指定了 table_id 和 docId,docId 必须是非 NULL,并在指定的表中指定有效的 DocId。 若要隔离基表中与特定全文索引的 DocID 对应的自定义全文键,此函数十分有用。 |
table_id、NULL 密钥 |
如果存在三个参数,则第二个参数必须是 NULL ,并且 键 必须是非 NULL,并且指定指定表中的有效全文键值。 若要隔离基表中与特定全文键对应的 DocID,此函数十分有用。 |
在以下任一情况下会返回一个错误:
- 指定无效 table_id
- 该表未编制全文索引
NULL
对于可能为非 null 的参数,遇到 。
示例
注意
本节中的示例使用 Production.ProductReview
AdventureWorks2022 示例数据库的表。 可以通过执行 CREATE FULLTEXT INDEX 中为ProductReview
表提供的示例来创建此索引。
A. 获取所有 Key 和 DocId 值
以下示例使用语句 DECLARE @local_variable 创建局部变量, @table_id
并将表的 ProductReview
ID 指定为其值。 该示例执行sp_fulltext_keymappings
指定@table_id
table_id参数。
注意
sp_fulltext_keymappings
仅与 table_id 参数一起使用适用于小型表。
USE AdventureWorks2022;
GO
DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');
EXEC sp_fulltext_keymappings @table_id;
GO
此示例返回表中的所有 DocId 和全文键,如下所示:
TABLE | docId | key |
---|---|---|
1 |
1 |
1 |
2 |
2 |
2 |
3 |
3 |
3 |
4 |
4 |
4 |
B. 获取特定键值的 DocId 值
下面的示例使用 DECLARE 语句创建局部变量 @table_id
,并将 ProductReview
表的 ID 赋值给该变量。 该示例执行sp_fulltext_keymappings
指定 table_id 参数、NULL
docId 参数和键参数 4。 @table_id
注意
sp_fulltext_keymappings
仅与适合小型表的 table_id 参数一起使用。
USE AdventureWorks2022;
GO
DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');
EXEC sp_fulltext_keymappings @table_id, NULL, 4;
GO
此示例返回以下结果。
TABLE | docId | key |
---|---|---|
4 |
4 |
4 |