次の方法で共有


セマンティック検索 (SQL Server)

統計セマンティック検索では、統計的に関連する キー フレーズを抽出してインデックスを作成することで、SQL Server データベースに格納されている非構造化ドキュメントに関する詳細な分析情報を提供します。 また、これらのキー フレーズを使用して、 類似または関連するドキュメントを識別し、インデックスを作成します。

これらのセマンティック インデックスのクエリを実行するには、3 つの Transact-SQL 行セット関数を使用して、構造化データとして結果を取得します。

セマンティック検索でできること

セマンティック検索は、SQL Server の既存のフルテキスト検索機能に基づいていますが、キーワード検索を超える新しいシナリオが可能になります。 フルテキスト検索ではドキュメント内の 単語 に対してクエリを実行できますが、セマンティック検索ではドキュメントの 意味 を照会できます。 可能になったソリューションには、タグの自動抽出、関連するコンテンツ検出、類似コンテンツ間の階層ナビゲーションなどがあります。 たとえば、キー フレーズのインデックスに対してクエリを実行して、組織またはドキュメントのコーパスの分類を作成できます。 または、ドキュメントの類似性インデックスに対してクエリを実行して、ジョブの説明に一致する履歴書を特定することもできます。

セマンティック検索の機能の例を次に示します。

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

次のクエリでは、サンプル ドキュメントで識別されたキー フレーズを取得します。 各キー フレーズの統計的有意性をランク付けするスコアによって、結果が降順に表示されます。 このクエリは、 semantickeyphrasetable (Transact-SQL) 関数を呼び出します。

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 (Transact-SQL) 関数を呼び出します。

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 (Transact-SQL) 関数を呼び出します。

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 データベースにドキュメントを格納する必要があります。

SQL Server 2014 の FileTable 機能は、非構造化ファイルとドキュメントをリレーショナル データベースの第一級の市民にします。 その結果、データベース開発者は、セット ベースの操作で構造化データと共にドキュメント Transact-SQL 操作できます。

FileTable 機能の詳細については、「 FileTables (SQL Server)」を参照してください。 データベースにドキュメントを格納するためのもう 1 つのオプションである FILESTREAM 機能の詳細については、 FILESTREAM (SQL Server) を参照してください。

関連タスク

セマンティック検索のインストールと構成
統計的セマンティック検索の前提条件と、それらをインストールまたはチェックする方法について説明します。

テーブルと列のセマンティック検索を有効にする
ドキュメントまたはテキストを含む選択した列の統計セマンティック インデックス作成を有効または無効にする方法について説明します。

セマンティック検索を使用してドキュメント内のキー フレーズを検索する
統計的セマンティック インデックス作成用に構成されているドキュメントまたはテキスト列のキー フレーズを検索する方法について説明します。

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

セマンティック検索の管理と監視
セマンティック インデックス作成のプロセスと、インデックスの監視と管理に関連するタスクについて説明します。

関連コンテンツ

セマンティック検索のDDL、関数、ストアドプロシージャ、およびビュー
統計セマンティック検索をサポートするために追加または変更された Transact-SQL ステートメントと SQL Server データベース オブジェクトを一覧表示します。