semantickeyphrasetable (Transact-SQL)
適用対象: SQL サーバー
指定されたテーブル内の指定された列に関連付けられているキー フレーズに対し、0 行、1 行、または複数の行を含むテーブルを返します。
この行セット関数は、標準のテーブル名のように、SELECT ステートメントの FROM 句で参照できます。
構文
SEMANTICKEYPHRASETABLE
(
table,
{ column | (column_list) | * }
[ , source_key ]
)
引数
テーブル
フルテキスト インデックスとセマンティック インデックスが有効になっているテーブルの名前を指定します。
この名前は 1 から 4 部構成の名前にすることができますが、リモート サーバー名は使用できません。
column
結果を返すインデックス付き列の名前。 列でセマンティック インデックス作成が有効になっている必要があります。
column_list
複数の列をコンマで区切り、かっこで囲んで示します。 すべての列でセマンティック インデックス作成が有効になっている必要があります。
*
セマンティック インデックスが有効になっているすべての列が含まれていることを示します。
source_key
特定の行の結果を要求する行の一意のキー。
キーは、可能な限り、ソース テーブルのフルテキスト一意キーの型に暗黙的に変換されます。 キーは定数または変数として指定できますが、スカラー サブクエリの式または結果にすることはできません。 source_keyを省略すると、すべての行の結果が返されます。
返されるテーブル
次の表では、この行セット関数が返すキー フレーズに関する情報について説明します。
Column_name | 型 | 説明 |
---|---|---|
column_id | int | 現在のキー フレーズが抽出され、インデックスが作成された列の ID。 列 ID から列名 (または列名から列 ID) を取得する方法の詳細については、COL_NAME 関数と COLUMNPROPERTY 関数のセクションを参照してください。 |
document_key | * このキーは、ソース テーブル内の一意キーの型と一致します。 |
現在のキー フレーズのインデックスが作成されたドキュメントまたは行の一意のキー値。 |
keyphrase | NVARCHAR | column_idによって識別され、document_keyで指定されたドキュメントに関連付けられている列で見つかったキー フレーズ。 |
スコア | REAL | インデックス付き列の同じドキュメント内の他のすべてのキー フレーズとのリレーションシップにおける、このキー フレーズの相対値。 この値は [0.0, 1.0] の範囲内の小数値です。スコアの値が大きいほど類似性が高く、1.0 は完全に一致することを表します。 |
全般的な解説
詳細については、「 セマンティック検索を使用したドキュメントでのキー フレーズの検索を参照してください。
Metadata
セマンティックなキー フレーズの抽出および生成の詳細と状態については、次の動的管理ビューに対してクエリを実行してください。
セキュリティ
アクセス許可
フルテキストおよびセマンティック インデックスが作成されたベース テーブルに対する SELECT 権限が必要です。
例
例 1: 特定のドキュメントに含まれる上位のキー フレーズを見つける
次の例では、AdventureWorks サンプル データベースの Production.Document テーブルの Document 列にある、@DocumentId 変数で指定されたドキュメントから、上位 10 個のキー フレーズを取得します。 @DocumentId 変数は、フルテキスト インデックスのキー列の値を表します。 SEMANTICKEYPHRASETABLE 関数は、テーブル スキャンではなくインデックス シークを使用してこれらの結果を効率的に取得します。 この例では、列がフルテキスト インデックスとセマンティック インデックス作成用に構成されていることを前提としています。
SELECT TOP(10) KEYP_TBL.keyphrase
FROM SEMANTICKEYPHRASETABLE
(
Production.Document,
Document,
@DocumentId
) AS KEYP_TBL
ORDER BY KEYP_TBL.score DESC;
例 2: 特定のキー フレーズを含む上位のドキュメントを見つける
次の例では、AdventureWorks サンプル データベースの Production.Document テーブルの Document 列から、キー フレーズ "Bracket" を含む上位 25 個のドキュメントを取得します。 この例では、列がフルテキスト インデックスとセマンティック インデックス作成用に構成されていることを前提としています。
SELECT TOP (25) DOC_TBL.DocumentID, DOC_TBL.DocumentSummary
FROM Production.Document AS DOC_TBL
INNER JOIN SEMANTICKEYPHRASETABLE
(
Production.Document,
Document
) AS KEYP_TBL
ON DOC_TBL.DocumentID = KEYP_TBL.document_key
WHERE KEYP_TBL.keyphrase = 'Bracket'
ORDER BY KEYP_TBL.Score DESC;