semanticsimilaritytable (Transact-SQL)

指定されたドキュメントに意味が似ている指定された列のコンテンツを持つドキュメントに対し、0 行、1 行、または複数の行から成るテーブルを返します。

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

トピック リンク アイコン Transact-SQL 構文表記規則

構文

SEMANTICSIMILARITYTABLE
    (
    table,
    { column | (column_list) | * },
    source_key
    )

引数

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

    この名前は、1 部から 4 部の構成の名前にできますが、リモート サーバー名は許可されません。

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

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

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

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

    このキーは、可能であれば常に、ソース テーブル内の一意なフルテキスト キーの型に暗黙的に変換されます。 キーは定数または変数として指定できますが、式やスカラー サブクエリの結果にすることはできません。

返されるテーブル

次の表に、この行セット関数から返される、類似したドキュメントまたは関連ドキュメントに関する情報を示します。

結果が複数の列から要求される場合は、列ごとに一致したドキュメントが返されます。

Column_name

説明

source_column_id

int

ソース ドキュメントを使用して類似したドキュメントを検出したときの、検出元の列の ID。

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

matched_column_id

int

類似したドキュメントの検出元の列の ID。

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

matched_document_key

*

このキーは、ソース テーブル内の一意キーの型と一致します。

クエリで指定したドキュメントに類似していることが判明したドキュメントまたは行の、フルテキストおよびセマンティックな抽出の一意のキー値。

score

REAL

類似した他のすべてのドキュメントとの関係における、このドキュメントの類似性の相対値。

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

全般的な解説

詳細については、「セマンティック検索による類似および関連したドキュメントの取得」を参照してください。

制限事項と制約事項

複数の列にわたって類似したドキュメントに対するクエリを実行することはできません。 SEMANTICSIMILARITYTABLE 関数は、source_key 引数によって識別されるソース列と同じ列からのみ、類似したドキュメントを取得します。

メタデータ

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

セキュリティ

権限

フルテキストおよびセマンティック インデックスが作成されたベース テーブルに対する SELECT 権限が必要です。

使用例

次の例では、AdventureWorks2012 サンプル データベースの HumanResources.JobCandidate テーブルから、指定した候補に類似する上位 10 件の候補を取得します。

SELECT TOP(10) KEY_TBL.matched_document_key AS Candidate_ID
FROMSEMANTICSIMILARITYTABLE
    (
    HumanResources.JobCandidate,
    Resume,
    @CandidateID
    ) AS KEY_TBL
ORDER BY KEY_TBL.score DESC;