Share via


semanticsimilaritytable (Transact-SQL)

適用対象:SQL Server

指定した列の内容が指定したドキュメントと意味的に似ているドキュメントの 0 行、1 行、または複数行のテーブルを返します。

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

Transact-SQL 構文表記規則

構文

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

引数

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

この名前は 1 から 4 部構成の名前にすることができますが、リモート サーバー名は使用できません。

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

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

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

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

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

返されるテーブル

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

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

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

列 ID から列名 (または列名から列 ID) を取得する方法の詳細については、COL_NAME 関数と COLUMNPROPERTY 関数のセクションを参照してください。
matched_column_id int 類似のドキュメントが見つかった列の ID。

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

このキーは、ソース テーブル内の一意キーの型と一致します。
クエリで指定したドキュメントに類似していることが判明したドキュメントまたは行の、フルテキストおよびセマンティックな抽出の一意のキー値。
スコア REAL 類似した他のすべてのドキュメントとの関係における、このドキュメントの類似性の相対値。

この値は、[0.0, 1.0] の範囲の小数部の 10 進値です。高いスコアは近い一致を表し、1.0 は完全なスコアです。

全般的な解説

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

制限事項と制約事項

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

メタデータ

セマンティック類似性の抽出と作成に関する情報と状態については、次の動的管理ビューを照会します。

セキュリティ

アクセス許可

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

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

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