sp_fulltext_keymappings (Transact-SQL)

適用対象:SQL ServerAzure SQL Managed InstanceAnalytics 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 (Transact-SQL)」を参照してください

Docid

キー値に対応する内部ドキュメント識別子 (DocId)。 無効な docId 値は結果を返しません。

キー

指定したテーブルのフルテキスト キー値。 key 値が無効な場合、結果は返されません。 フルテキスト キー値の詳細については、「フルテキスト インデックスの管理」を参照してください

リターン コードの値

なし。

結果セット

列名 データ型 説明
DocId bigint キー値に対応する内部ドキュメント識別子 (DocId) 列。
Key 1 指定したテーブルのフルテキスト キー値。

マッピング テーブルにフルテキスト キーが存在しない場合は、空の行セットが返されます。

1 Key のデータ型は、ベース テーブルのフルテキスト キー列のデータ型と同じです。

アクセス許可

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

解説

次の表に、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_キーワード (keyword)s_by_document (Transact-SQL)」を参照してください

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

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

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

Note

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

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

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

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 パラメーター、docId パラメーターに NULL、キー パラメーターに 4 を指定@table_idして実行sp_fulltext_keymappingsします。

Note

小さなテーブルに適した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 キー
4 4 4