検索をサポートするために、テキストの段落を含むドキュメントに対して自由形式テキストの処理を行うことができます。
テキスト検索は、ドキュメントのコレクションに対して事前に計算済みの特殊なインデックスを構築することによって機能します。 クライアント アプリケーションは、検索用語を含むクエリを送信します。 クエリから結果セットが返されます。これは、検索条件と一致する度合いに従って並べられたドキュメントの一覧です。 結果セットには、ドキュメントが条件と一致するコンテキストも含まれる可能性があり、そのため、アプリケーションは、ドキュメント内の一致する語句を強調表示できます。
自由形式テキストの処理では、大量のテキスト データから有用で実用的なデータを生成できます。 結果は、構造化されていないドキュメントに対して、適切に定義され、クエリ可能な構造を与えることができます。
Architecture
ほとんどのシナリオでは、ソース テキスト ドキュメントを Azure Storage や Azure Data Lake Store などのオブジェクト ストレージに読み込み、外部の検索サービスを利用してインデックスを付けます。 ソース テキスト ドキュメントは検索サービスでホストされる検索インデックスとは物理的に異なります。
例外は、SQL Server または Azure SQL Database 内でフルテキスト検索を使用する場合です。 この場合、ドキュメントのデータは、データベースによって管理されるテーブル内部に存在します。 格納されたドキュメントは、バッチ処理されてインデックスが作成されます。
テクノロジの選択
検索インデックスを作成するためのオプションには、Azure Cognitive Search、Elasticsearch、Apache Solr を使用する Azure HDInsight などがあります。 これらの各テクノロジは、ドキュメントのコレクションから検索インデックスを設定できます。
Cognitive Search には、プレーン テキストから Excel 形式と PDF 形式に至るまでのドキュメントのインデックスを自動的に設定できるインデクサーが用意されています。 また、機械学習モデルをインデクサーにアタッチして、検索可能なコンテンツの画像や非構造化テキストを分析することもできます。
HDInsight では、Solr で、プレーン テキスト、Word、PDF を含むさまざまな種類のバイナリ ファイルにインデックスを付けることができます。 インデックスが構築されたら、クライアントは、REST API を使用して検索インターフェイスにアクセスできます。
テキスト データを SQL Server または Azure SQL Database に格納する場合は、データベースに組み込まれているフルテキスト検索を使用できます。 データベースは、同じデータベース内に格納されたテキスト、バイナリ、または XML データからインデックスを設定します。 クライアントは、T-SQL クエリを使用して検索します。
考慮事項
自由形式テキストのドキュメント コレクションの処理は、通常は、コンピューティングの負荷が高く、また時間もかかります。
自由形式テキストを効率的に検索するために、検索インデックスでは、構造が似ている用語のあいまい検索をサポートする必要があります。 たとえば、"見出し語解析" と "語幹抽出" により構築された検索インデックスでは、"run" のクエリを実行したときに、"ran" と "running" を含むドキュメントも突き合わせることができます。
共同作成者
この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。
プリンシパル作成者:
- Zoiner Tejada | CEO 兼アーキテクト