セマンティック検索による類似および関連したドキュメントの取得

適用対象:SQL Server

統計的セマンティック インデックス作成用に構成されている列での、類似性または関連性のあるドキュメントやテキスト値の検索方法と、どのように類似または関連しているかという情報の検索方法について説明します。

類似または関連ドキュメントを SEMANTICSIMILARITYTABLE で見つける

特定の列で類似または関連したドキュメントを識別するには、semanticsimilaritytable (Transact-SQL) 関数を使用してクエリを実行します。

SEMANTICSIMILARITYTABLE は、指定されたドキュメントに意味が似ているコンテンツを指定された列に持っている行 (0 行、1 行、または複数の行) から成るテーブルを返します。 この行セット関数は、標準のテーブル名のように、SELECT ステートメントの FROM 句で参照できます。

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

SEMANTICSIMILARITYTABLE 関数に必要なパラメーターの詳細や関数から返される結果のテーブルについては、「semanticsimilaritytable (Transact-SQL)」を参照してください。

重要

対象の列では、フルテキスト インデックスとセマンティック インデックスが有効になっている必要があります。

例: 他のドキュメントとの類似性が高い上位のドキュメントを見つける

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

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;  
GO  

ドキュメントがどのように類似または関連しているかについての情報を SEMANTICSIMILARITYDETAILSTABLE で見つける

ドキュメントが類似または関連する原因となっているキー フレーズに関する情報を表示するには、semanticsimilaritydetailstable (Transact-SQL) 関数を使用してクエリを実行します。

SEMANTICSIMILARITYDETAILSTABLE は、意味が似たコンテンツを持つ 2 つのドキュメント (ソース ドキュメントと一致するドキュメント) に共通するキー フレーズの 0 行、1 行、または複数の行から成るテーブルを返します。 この行セット関数は、標準のテーブル名のように、SELECT ステートメントの FROM 句で参照できます。

SEMANTICSIMILARITYDETAILSTABLE 関数に必要なパラメーターの詳細や関数から返される結果のテーブルについては、「semanticsimilaritydetailstable (Transact-SQL)」を参照してください。

重要

対象の列では、フルテキスト インデックスとセマンティック インデックスが有効になっている必要があります。

例: ドキュメント間で類似する上位のキー フレーズを検索する

次の例では、AdventureWorks2022 サンプル データベースの HumanResources.JobCandidate テーブル内の指定された候補間で最も類似スコアが高い 5 つのキー フレーズを取得します。

SELECT TOP(5) KEY_TBL.keyphrase, KEY_TBL.score  
FROM SEMANTICSIMILARITYDETAILSTABLE  
    (  
    HumanResources.JobCandidate,  
    Resume, @CandidateID,  
    Resume, @MatchedID  
    ) AS KEY_TBL  
ORDER BY KEY_TBL.score DESC;  
GO