セマンティックサーチ(SQL Server)

適用対象SQL Server

統計的意味検索は、SQL Serverデータベースに保存された非構造化文書から統計的に重要なキーワードフレーズを抽出・索引付けします。 そしてこれらのキーワードを使って、類似または関連する文書を特定します。

Overview

意味検索は、正確な単語ではなく文書の意味を一致させることで全文検索を拡張します。 一般的なユースケースには、自動タグ抽出、関連コンテンツの発見、類似コンテンツ間の階層的ナビゲーションなどがあります。 例えば、キーワードフレーズインデックスで文書コーパスのタクソノミーを作成したり、文書類似度指数で職務記述書に合致する履歴書を検索したりできます。

以下の例は、意味インデックスをクエリし、結果を構造化データとして取得するために使う3つの Transact-SQL 行セット関数を示しています。

ドキュメント内のキー フレーズを検索する

次のクエリは、サンプル ドキュメントで識別されたキー フレーズを取得します。 結果は、各キー フレーズの統計的有意性を順位付けするスコアの降順で表されます。

このクエリは、semantickeyphrasetable 関数を呼び出します。

SET @Title = 'Sample Document.docx';

SELECT @DocID = DocumentID
FROM Documents
WHERE DocumentTitle = @Title;

SELECT @Title AS Title,
       keyphrase,
       score
FROM SEMANTICKEYPHRASETABLE (Documents, *, @DocID)
ORDER BY score DESC;

次のクエリは、サンプル ドキュメントに類似または関連すると識別されたドキュメントを取得します。 結果は、2 つのドキュメントの類似性を順位付けするスコアの降順で表されます。

このクエリは、semanticsimilaritytable 関数を呼び出します。

SET @Title = 'Sample Document.docx';

SELECT @DocID = DocumentID
FROM Documents
WHERE DocumentTitle = @Title;

SELECT @Title AS SourceTitle,
       DocumentTitle AS MatchedTitle,
       DocumentID,
       score
FROM SEMANTICSIMILARITYTABLE (Documents, *, @DocID)
     INNER JOIN Documents
         ON DocumentID = matched_document_key
ORDER BY score DESC;

次のクエリは、2 つのサンプル ドキュメント間の類似性または関連性を示すキー フレーズを取得します。 結果は、各キー フレーズの重みを順位付けするスコアの降順で表されます。

このクエリは、semanticsimilaritydetailstable 関数を呼び出します。

SET @SourceTitle = 'first.docx';
SET @MatchedTitle = 'second.docx';

SELECT @SourceDocID = DocumentID
FROM Documents
WHERE DocumentTitle = @SourceTitle;

SELECT @MatchedDocID = DocumentID
FROM Documents
WHERE DocumentTitle = @MatchedTitle;

SELECT @SourceTitle AS SourceTitle,
       @MatchedTitle AS MatchedTitle,
       keyphrase,
       score
FROM SEMANTICSIMILARITYDETAILSTABLE (
    Documents, DocumentContent, @SourceDocID, DocumentContent, @MatchedDocID
)
ORDER BY score DESC;

SQL Server へドキュメントを保存する

セマンティック検索で文書をインデックス化する前に、まず文書をデータベース エンジンに保存してください。

SQL Server の FileTable 機能は、非構造化ファイルやドキュメントをデータベースに格納するため、それらを Transact-SQL の集合ベースの操作で構造化データと一緒に操作できます。

FileTable機能の詳細については、 FileTablesをご覧ください。 データベースに文書を保存するための別のオプションであるFILESTREAM機能については、 FILESTREAMを参照してください。

[アーティクル] Description
セマンティック検索のインストールと構成 統計的セマンティック検索の前提条件と、これらをインストールまたは確認する方法について説明します。
テーブルと列のセマンティックサーチを有効にする ドキュメントまたはテキストが格納されている選択した列に対して統計的セマンティック インデックス作成を有効または無効にする方法について説明します。
セマンティック検索を使用したドキュメント内のキー フレーズの検索 統計的セマンティック インデックス作成用に構成されたドキュメントまたはテキスト列内のキー フレーズのクエリを実行する方法について説明します。
セマンティック検索で類似および関連する文書を見つけてください 統計的セマンティック インデックス作成用に構成されている列での、類似性または関連性のあるドキュメントやテキスト値の検索方法と、どのように類似または関連しているかという情報の検索方法について説明します。
セマンティック検索の管理と監視 セマンティック インデックス作成プロセスと、インデックスの監視および管理に関連するタスクについて説明します。