次の方法で共有


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

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

このトピックの内容

実行する操作

  • 類似または関連ドキュメントの検索

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

    • 例: 別のドキュメントとの類似性が高い複数のドキュメントを見つける

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

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

    • 例: ドキュメント間で類似性が高い上位のキー フレーズを見つける

類似または関連ドキュメントの検索

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

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

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

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

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

重要な注意事項重要

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

[先頭に戻る]

例: 別のドキュメントとの類似性が高い複数のドキュメントを見つける

次の例では、AdventureWorks2012 サンプル データベースの 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)」を参照してください。

重要な注意事項重要

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

[先頭に戻る]

例: ドキュメント間で類似性が高い上位のキー フレーズを見つける

次の例では、AdventureWorks2012 サンプル データベースの 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

[先頭に戻る]