セマンティック検索 (SQL Server)
統計セマンティック検索では、統計的に関連するキー フレーズを抽出してインデックスを作成することで、SQL Server データベースに格納されている非構造化ドキュメントに関する深い分析情報を提供します。 次に、これらのキー フレーズを使用して、 類似または関連ドキュメントを特定してインデックスを作成することもできます。
3 つの Transact-SQL 行セット関数を使用することにより、これらのセマンティック インデックスに対してクエリを実行して、結果を構造化データとして取得することができます。
セマンティック検索で実行できる操作
セマンティック検索は、SQL Serverの既存のフルテキスト検索機能に基づいていますが、キーワード (keyword)検索を超える新しいシナリオが可能になります。 フルテキスト検索ではドキュメントの 単語 に対してクエリを実行しますが、セマンティック検索ではドキュメントの 意味 に対してクエリを実行します。 これによって、自動タグ抽出、関連性のあるコンテンツの検出、類似コンテンツにまたがる階層的なナビゲーションなどのソリューションが可能になりました。 たとえば、キー フレーズのインデックスに対してクエリを実行して、ドキュメントの編成またはコーパスに関する分類を作成することができます。 また、ドキュメントの類似性のインデックスに対してクエリを実行して、ジョブの説明に一致するレジュメを特定できます。
以降の例に、セマンティック検索の機能を示します。
ドキュメント内のキー フレーズの検索
次のクエリは、サンプル ドキュメントで識別されたキー フレーズを取得します。 結果は、各キー フレーズの統計的有意性を順位付けするスコアの降順で表されます。 このクエリは 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)」を参照してください。
Related Tasks
セマンティック検索のインストールと構成
統計的セマンティック検索の前提条件と、これらをインストールまたは確認する方法について説明します。
テーブルおよび列に対するセマンティック検索の有効化
ドキュメントまたはテキストが格納されている選択した列に対して統計的セマンティック インデックス作成を有効または無効にする方法について説明します。
セマンティック検索を使用したドキュメント内のキー フレーズの検索
統計的セマンティック インデックス作成用に構成されたドキュメントまたはテキスト列内のキー フレーズのクエリを実行する方法について説明します。
セマンティック検索による類似および関連したドキュメントの取得
統計的セマンティック インデックス作成用に構成されている列での、類似性または関連性のあるドキュメントやテキスト値の検索方法と、どのように類似または関連しているかという情報の検索方法について説明します。
セマンティック検索の管理および監視
セマンティック インデックス作成プロセスと、インデックスの監視および管理に関連するタスクについて説明します。
関連コンテンツ
セマンティック検索の DDL、関数、ストアド プロシージャ、およびビュー
統計的セマンティック検索をサポートするために追加または変更された Transact-SQL ステートメントおよび SQL Server データベース オブジェクトの一覧を示します。