semantickeyphrasetable (Transact-SQL)

適用対象:SQL Server

指定されたテーブル内の指定された列に関連付けられているキー フレーズに対し、0 行、1 行、または複数の行を含むテーブルを返します。

この行セット関数は、標準のテーブル名のように、SELECT ステートメントの FROM 句で参照できます。

Transact-SQL 構文表記規則

構文

SEMANTICKEYPHRASETABLE  
    (  
    table,  
    { column | (column_list) | * }  
     [ , source_key ]  
    )  

引数

テーブル
フルテキスト インデックスとセマンティック インデックスが有効になっているテーブルの名前を指定します。

この名前には 1 から 4 個の部分名を指定できますが、リモート サーバー名は使用できません。

column
結果を返すインデックス付き列の名前。 列でセマンティック インデックス作成が有効になっている必要があります。

column_list
コンマで区切られ、かっこで囲まれた複数の列を示します。 すべての列でセマンティック インデックス作成が有効になっている必要があります。

*
セマンティック インデックスが有効になっているすべての列が含まれていることを示します。

source_key
特定の行の結果を要求する行の一意のキー。

キーは、可能な限り、ソース テーブルのフルテキスト一意キーの型に暗黙的に変換されます。 キーは定数または変数として指定できますが、式またはスカラー サブクエリの結果にすることはできません。 source_keyを省略すると、結果はすべての行に対して返されます。

返されるテーブル

次の表は、この行セット関数が返すキー フレーズに関する情報を示しています。

Column_name Type 説明
column_id int 現在のキー フレーズが抽出され、インデックスが作成された列の ID。

列 ID から列名 (または列名から列 ID) を取得する方法の詳細については、COL_NAME 関数と COLUMNPROPERTY 関数のセクションを参照してください。
document_key *

このキーは、ソース テーブル内の一意のキーの種類と一致します。
現在のキー フレーズのインデックスが作成されたドキュメントまたは行の一意のキー値。
キーフレーズ NVARCHAR column_idによって識別され、document_keyで指定されたドキュメントに関連付けられている列に含まれるキー フレーズ。
スコア REAL インデックス付き列の同じドキュメント内の他のすべてのキー フレーズとのリレーションシップにおけるこのキー フレーズの相対値。

この値は [0.0, 1.0] の範囲内の小数値です。スコアの値が大きいほど類似性が高く、1.0 は完全に一致することを表します。

全般的な解説

詳細については、「 セマンティック検索を使用してドキュメント内のキー フレーズを検索する」を参照してください。

メタデータ

セマンティックなキー フレーズの抽出および生成の詳細と状態については、次の動的管理ビューに対してクエリを実行してください。

セキュリティ

アクセス許可

フルテキストおよびセマンティック インデックスが作成されたベース テーブルに対する 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;