sp_fulltext_keymappings (Transact-SQL)

適用於:SQL ServerAzure SQL 受控執行個體Analytics Platform System (PDW)

傳回文件識別碼 (DocIds) 與全文檢索索引鍵值之間的對應。 DocId 資料行包含 bigint 整數的值,這些值會對應至全文檢索索引數據表中的特定全文檢索索引鍵值。 滿足搜尋條件的 DocId 值會從全文檢索引擎傳遞至 資料庫引擎,其中會對應至所查詢基表的全文檢索索引鍵值。 全文檢索索引鍵數據行是數據表的一個數據行上所需的唯一索引。

Transact-SQL 語法慣例

語法

sp_fulltext_keymappings { table_id | table_id , docId | table_id , NULL , key }
[ ; ]

引數

table_id

全文檢索索引數據表的物件標識碼。 如果您指定無效 table_id,則會傳回錯誤。 如需取得資料表物件識別碼的相關信息,請參閱 OBJECT_ID (Transact-SQL)

docId

對應至索引鍵值的內部文件標識碼 (DocId)。 無效 的 docId 值不會傳回任何結果。

key

來自指定數據表的全文檢索索引鍵值。 無效 的索引鍵 值不會傳回任何結果。 如需全文檢索索引鍵值的相關信息,請參閱 管理全文檢索索引

傳回碼值

無。

結果集

資料行名稱 資料類型 描述
DocId bigint 對應至索引鍵值的內部文件標識碼 (DocId) 資料行。
Key 1 來自指定數據表的全文檢索索引鍵值。

如果對應數據表中沒有全文檢索索引鍵,則會傳回空的數據列集。

1 Key 的數據類型與基表中全文檢索索引鍵數據行的數據類型相同。

權限

此函式是公用的,不需要任何特殊許可權。

備註

下表描述使用一、二或三個參數的效果。

此參數清單... 有這個結果...
table_id 僅使用 table_id 參數叫用時, sp_fulltext_keymappings 會傳回指定基表的所有全文檢索索引鍵 (Key) 值,以及對應至每個索引鍵的 DocId。 這包括擱置刪除的索引鍵。

此函式適用於針對各種問題進行疑難解答。 當選取的全文檢索索引鍵不是整數數據類型時,查看全文檢索索引內容很有用。 這牽涉到將 的結果 sp_fulltext_keymappings 與 的結果 sys.dm_fts_index_keywords_by_document聯結。 如需詳細資訊,請參閱 sys.dm_fts_index_keywords_by_document (Transact-SQL)

不過,一般而言,建議您盡可能使用指定特定全文檢索索引鍵或 DocId 的參數來執行 sp_fulltext_keymappings 。 這比傳回整個索引鍵對應更有效率,尤其是對於傳回整個索引鍵對應效能成本可能相當大的大型數據表。
table_id,docId 如果只指定table_iddocId,docId 必須是非 NULL,並在指定的數據表中指定有效的 DocId。 此函式有助於將自定義全文檢索索引鍵與對應至特定全文檢索索引之 DocId 的基表隔離。
table_id、NULL、金鑰 如果存在三個參數,則第二個參數必須是 NULL,且索引鍵必須是非 NULL,並從指定的數據表指定有效的全文檢索索引鍵值。 此函式有助於隔離對應至基表中特定全文檢索索引鍵的 DocId。

在下列任一情況下,會傳回錯誤:

  • 您指定無效 的table_id
  • 數據表未編製全文檢索索引
  • NULL 對於可能為非 Null 的參數,會遇到 。

範例

注意

本節中的範例會使用 Production.ProductReview AdventureWorks2022 範例資料庫的數據表。 您可以執行 CREATE FULLTEXT INDEX (Transact-SQL)針對ProductReview資料表提供的範例來建立此索引。

A. 取得所有 Key 和 DocId 值

下列範例會使用 DECLARE 語句來建立局部變數, @table_id 並將數據表的 ProductReview 標識碼指派為其值。 此範例會sp_fulltext_keymappings針對 table_id 參數執行指定@table_id

注意

搭配 table_id 參數使用sp_fulltext_keymappings,適用於小型數據表。

USE AdventureWorks2022;
GO
DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');
EXEC sp_fulltext_keymappings @table_id;
GO

此範例會從數據表傳回所有 DocIds 和全文檢索索引鍵,如下所示:

TABLE docId key
1 1 1
2 2 2
3 3 3
4 4 4

B. 取得特定 Key 值的 DocId 值

下列範例會使用 DECLARE 語句來建立局部變數 , @table_id並將數據表的 ProductReview 標識碼指派為其值。 此範例會sp_fulltext_keymappings@table_id針對 docId 參數指定 table_id 參數、docId 參數的 NULL,以及針對 key 參數指定 4。

注意

搭配適用於小型數據表的 table_id 參數使用sp_fulltext_keymappings

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