セマンティック検索 (SQL Server)
統計的セマンティック検索では、統計的に関連性があるキー フレーズを抽出してインデックスを作成することにより、SQL Server データベースに格納されている非構造化ドキュメントを深く解釈することができます。 次に、これらのキー フレーズを使用して、類似または関連ドキュメントを特定してインデックスを作成することもできます。
3 つの Transact-SQL 行セット関数を使用することにより、これらのセマンティック インデックスに対してクエリを実行して、結果を構造化データとして取得することができます。
このトピックの内容
セマンティック検索で実行できる操作
ドキュメント内のキー フレーズの検索
類似または関連ドキュメントの検索
ドキュメントの類似性を示すキー フレーズの識別
SQL Server へのドキュメントの保存
関連タスク
関連コンテンツ
セマンティック検索で実行できる操作
セマンティック検索は、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 2012 の FileTable の機能との組み合わせにより、構造化されていないファイルやドキュメントを、リレーショナル データベースの最上位レベルのオブジェクトにすることができます。 その結果、データベース開発者は、Transact-SQL セットベースの操作で構造化データと共にドキュメントを操作できます。
FileTable 機能の詳細については、「FileTables (SQL Server)」を参照してください。 データベースへのドキュメントの保存の別のオプションである FILESTREAM 機能の詳細については、「FILESTREAM (SQL Server)」を参照してください。
先頭に戻る
関連タスク
セマンティック検索のインストールと構成
統計的セマンティック検索の前提条件と、これらをインストールまたは確認する方法について説明します。テーブルおよび列に対するセマンティック検索の有効化
ドキュメントまたはテキストが格納されている選択した列に対して統計的セマンティック インデックス作成を有効または無効にする方法について説明します。セマンティック検索を使用したドキュメント内のキー フレーズの検索
統計的セマンティック インデックス作成用に構成されたドキュメントまたはテキスト列内のキー フレーズのクエリを実行する方法について説明します。セマンティック検索による類似および関連したドキュメントの取得
統計的セマンティック インデックス作成用に構成されている列での、類似性または関連性のあるドキュメントやテキスト値の検索方法と、どのように類似または関連しているかという情報の検索方法について説明します。セマンティクス検索の管理および監視
セマンティック インデックス作成プロセスと、インデックスの監視および管理に関連するタスクについて説明します。
関連コンテンツ
- セマンティック検索の DDL、関数、ストアド プロシージャ、およびビュー
統計的セマンティック検索をサポートするために追加または変更された Transact-SQL ステートメントおよび SQL Server データベース オブジェクトの一覧を示します。