sp_fulltext_keymappings (Transact-SQL)
適用対象: SQL Server Azure SQL Managed Instance Analytics Platform System (PDW)
ドキュメント識別子 (DocId) とフルテキスト キー値の間のマッピングを返します。 DocId 列には、フルテキスト インデックス付きテーブルの特定のフルテキスト キー値にマップされる bigint 整数の値が含まれています。 検索条件に一致する DocId 値は、Full-Text Engine からデータベース エンジンに渡され、そこでクエリ対象のベース テーブルのフルテキスト キー値にマップされます。 フルテキスト キー列は、テーブルの 1 つの列に必要な一意のインデックスです。
構文
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_id、 docId | table_idとdocIdのみを指定する場合、docIdは NULL 以外で、指定したテーブルに有効な DocId を指定する必要があります。 この機能は、カスタム フルテキスト キーを、特定のフルテキスト インデックスの DocId に対応するベース テーブルから切り離す場合に役立ちます。 |
table_id、 NULL 、 key |
3 つのパラメーターが存在する場合、2 番目のパラメーターは NULL 、 key は NULL 以外で、指定したテーブルの有効なフルテキスト キー値を指定する必要があります。 この機能は、特定のフルテキスト キーに対応する DocId をベース テーブルから切り離す場合に役立ちます。 |
次のいずれかの条件に該当する場合は、エラーが返されます。
- 無効な table_idを指定しました
- テーブルにフルテキスト インデックスが作成されていない
NULL
が null 以外の可能性があるパラメーターに対して検出されます。
例
Note
このセクションの例では、AdventureWorks2022 サンプル データベースの Production.ProductReview
テーブルを使用します。 このインデックスを作成するには、CREATE FULLTEXT INDEX のProductReview
テーブルに対して提供されている例を実行します。
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_id
、docId パラメーターにNULL
、key パラメーターに 4 を指定sp_fulltext_keymappings
実行します。
Note
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 | キー |
---|---|---|
4 |
4 |
4 |