次の方法で共有


セマンティック検索を使用して類似の関連ドキュメントを検索する

適用対象SQL Server

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

特定の列で類似または関連するドキュメントを識別するには、関数 semanticsimilaritytable をクエリします。

SEMANTICSIMILARITYTABLE は、指定した列の内容が指定された文書と意味的に似ている 0 行、1 行、または複数行のテーブルを返します。 この行セット関数は、通常のテーブル名のようなFROMステートメントのSELECT句で参照できます。

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

SEMANTICSIMILARITYTABLE関数に必要なパラメーターと、返される結果のテーブルの詳細については、semanticsimilaritytable を参照してください。

Important

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

ドキュメントを類似または関連させるキー フレーズに関する情報を取得するには、関数 semanticsimilaritydetailstable にクエリを実行します。

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

SEMANTICSIMILARITYDETAILSTABLE関数に必要なパラメーターと、返される結果のテーブルの詳細については、semanticsimilaritydetailstable を参照してください。

Important

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

Examples

A. 別のドキュメントに似ている上位のドキュメントを検索する

次の例では、 サンプル データベースの HumanResources.JobCandidate テーブルから、AdventureWorks2025 で指定した候補に類似する上位 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

B. ドキュメント間で似ている上位のキー フレーズを検索する

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

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