sp_fulltext_keymappings (Transact-SQL)

適用対象: SQL Server Azure SQL Managed Instance Analytics Platform System (PDW)

ドキュメント識別子 (DocId) とフルテキスト キー値の間のマッピングを返します。 DocId 列には、フルテキスト インデックス付きテーブルの特定のフルテキスト キー値にマップされる bigint 整数の値が含まれています。 検索条件に一致する DocId 値は、Full-Text Engine からデータベース エンジンに渡され、そこでクエリ対象のベース テーブルのフルテキスト キー値にマップされます。 フルテキスト キー列は、テーブルの 1 つの列に必要な一意のインデックスです。

Transact-SQL 構文表記規則

構文

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 キーのデータ型は、ベース テーブルのフルテキスト キー列のデータ型と同じです。

アクセス許可

この関数はパブリックであり、特別なアクセス許可は必要ありません。

解説

次の表に、1 つ、2 つ、または 3 つのパラメーターを使用した場合の効果を示します。

このパラメーター リスト... この結果が得られます...
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」を参照してください。

ただし、一般的には、可能であれば、特定のフルテキスト キーまたは DocId を指定するパラメーターを使用して sp_fulltext_keymappings を実行することをお勧めします。 これは、キー マップ全体を返すよりもはるかに効率的です。特に、キー マップ全体を返すパフォーマンス コストが大きくなる可能性がある大きなテーブルの場合です。
table_iddocId table_iddocIdのみを指定する場合、docIdは NULL 以外で、指定したテーブルに有効な DocId を指定する必要があります。 この機能は、カスタム フルテキスト キーを、特定のフルテキスト インデックスの DocId に対応するベース テーブルから切り離す場合に役立ちます。
table_idNULLkey 3 つのパラメーターが存在する場合、2 番目のパラメーターは NULLkey は NULL 以外で、指定したテーブルの有効なフルテキスト キー値を指定する必要があります。 この機能は、特定のフルテキスト キーに対応する DocId をベース テーブルから切り離す場合に役立ちます。

次のいずれかの条件に該当する場合は、エラーが返されます。

  • 無効な table_idを指定しました
  • テーブルにフルテキスト インデックスが作成されていない
  • NULL が null 以外の可能性があるパラメーターに対して検出されます。

Note

このセクションの例では、AdventureWorks2022 サンプル データベースの Production.ProductReview テーブルを使用します。 このインデックスを作成するには、CREATE FULLTEXT INDEXProductReview テーブルに対して提供されている例を実行します。

A. すべての Key 値と DocId 値を取得する

次の例では、 DECLARE @local_variable ステートメントを使用してローカル変数を作成し、 @table_id し、 ProductReview テーブルの ID を値として割り当てます。 この例では、table_id パラメーターsp_fulltext_keymappings@table_idを指定して実行します。

Note

table_id パラメーターのみでsp_fulltext_keymappingsを使用することは、小さなテーブルに適しています。

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

この例では、次のように、テーブルからすべての DocId とフルテキスト キーを返します。

TABLE docId キー
1 1 1
2 2 2
3 3 3
4 4 4

B. 特定のキー値の DocId 値を取得する

次の例では、DECLARE ステートメントを使用してローカル変数 @table_idを作成し、 ProductReview テーブルの ID をその値として割り当てます。 この例では、table_id パラメーターの@table_iddocId パラメーターにNULLkey パラメーターに 4 を指定sp_fulltext_keymappings実行します。

Note

sp_fulltext_keymappingstable_idパラメーターのみを使用すると、小さなテーブルに適しています。

USE AdventureWorks2022;
GO

DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');

EXEC sp_fulltext_keymappings @table_id, NULL, 4;
GO

この例では、次の結果が返されます。

TABLE docId キー
4 4 4