Azure Cognitive Search とはWhat is Azure Cognitive Search?

Azure Cognitive Search (旧称 Azure Search) は、Web、モバイル、エンタープライズの各アプリケーション内のプライベートな異種コンテンツに対する豊富な検索エクスペリエンスを構築するための API とツールを開発者に提供するクラウド検索サービスです。Azure Cognitive Search (formerly known as "Azure Search") is a cloud search service that gives developers APIs and tools for building a rich search experience over private, heterogeneous content in web, mobile, and enterprise applications.

検索サービスには次のコンポーネントがあります。A search service has the following components:

  • フルテキスト検索の検索エンジンSearch engine for full text search
  • ユーザーが所有するインデックス付けされたコンテンツの永続的ストレージPersistent storage of user-owned indexed content
  • インデックス作成とクエリのための APIAPIs for indexing and querying
  • (省略可能) AI ベースのエンリッチメント (画像、生のテキスト、アプリケーション ファイルから検索可能なコンテンツを作成する)Optional AI-based enrichments, creating searchable content out of images, raw text, application files
  • (省略可能) データ、機械学習 (AI)、セキュリティを目的とした他の Azure サービスとの統合Optional integration with other Azure services for data, machine learning/AI, and security

アーキテクチャ上、検索サービスは、インデックスが設定されていないデータを含む外部データ ストアと、検索インデックスにクエリ要求を送信して応答を処理するクライアント アプリとの間に配置されます。Architecturally, a search service sits in between the external data stores that contain your un-indexed data, and your client app that sends query requests to a search index and handles the response.

Azure Cognitive Search のアーキテクチャAzure Cognitive Search architecture

検索は、対外的に他の Azure サービスと統合できます。これには、Azure データ ソースからのデータのインジェストと取得を自動化する "インデクサー" という形式があるほか、Cognitive Services で提供されている AI (画像やテキストの分析など) や、Azure Machine Learning 内で作成したり Azure Functions 内にラップしたりするカスタム AI を組み込んだ "スキルセット" という形式があります。Externally, search can integrate with other Azure services in the form of indexers that automate data ingestion/retrieval from Azure data sources, and skillsets that incorporate consumable AI from Cognitive Services, such as image and text analysis, or custom AI that you create in Azure Machine Learning or wrap inside Azure Functions.

検索サービスの内部Inside a search service

検索サービス自体は、"インデックスの作成" と "クエリの実行" の 2 つが主なワークロードとなります。On the search service itself, the two primary workloads are indexing and querying.

  • インデックス作成は、取り込みのプロセスです。コンテンツを検索サービスに読み込んで検索可能にします。Indexing is an intake process that loads content into to your search service and makes it searchable. 内部では、受信テキストはトークンへと処理され、高速スキャンできるように逆インデックスに格納されます。Internally, inbound text is processed into tokens and stored in inverted indexes for fast scans. JSON ドキュメント形式であればどのようなテキストでもアップロードできます。You can upload any text that is in the form of JSON documents.

    加えて、コンテンツに雑多なファイルが含まれている場合は、コグニティブ スキルを通じて "AI エンリッチメント" を追加するという選択肢があります。Additionally, if your content includes mixed files, you have the option of adding AI enrichment through cognitive skills. AI エンリッチメントは、アプリケーション ファイルに埋め込まれているテキストを抽出できるほか、非テキスト ファイルから、そのコンテンツを分析することによってテキストと構造を推測することもできます。AI enrichment can extract text embedded in application files, and also infer text and structure from non-text files by analyzing the content.

    分析機能を備えたスキルは、Microsoft によってあらかじめ定義されているものと、ユーザーによって作成されるカスタム スキルとがあります。The skills providing the analysis are predefined ones from Microsoft, or custom skills that you create. その後の分析と変換によって、以前は存在していなかった新しい情報と構造が生成されるため、さまざまな検索およびナレッジ マイニング シナリオに対応した高度な実用性が実現します。The subsequent analysis and transformations can result in new information and structures that did not previously exist, providing high utility for many search and knowledge mining scenarios.

  • クエリが実行できるようになるのは、検索可能なテキストがインデックスに投入された後です。クライアント アプリが検索サービスにクエリ要求を送信して応答を処理します。Querying can happen once an index is populated with searchable text, when your client app sends query requests to a search service and handles responses. すべてのクエリは、お客様のサービス内で作成、所有、保存する検索インデックスに対して実行されます。All query execution is over a search index that you create, own, and store in your service. クライアント アプリでの検索エクスペリエンスは Azure Cognitive Search の API を使用して定義され、関連性のチューニング、オートコンプリート、シノニムの一致、あいまい一致、パターン マッチング、フィルター、および並べ替えを含めることができます。In your client app, the search experience is defined using APIs from Azure Cognitive Search, and can include relevance tuning, autocomplete, synonym matching, fuzzy matching, pattern matching, filter, and sort.

機能は、情報の検索に固有の複雑さを感じさせないシンプルな REST API または .NET SDK を使って公開されます。Functionality is exposed through a simple REST API or .NET SDK that masks the inherent complexity of information retrieval. また、Azure portal を使用して、サービスの管理とコンテンツの管理を行うこともできます。インデックスとスキルセットのプロトタイプ作成やクエリを実行するためのツールが用意されています。You can also use the Azure portal for service administration and content management, with tools for prototyping and querying your indexes and skillsets. サービスはクラウドで実行されるため、インフラストラクチャと可用性は Microsoft によって管理されます。Because the service runs in the cloud, infrastructure and availability are managed by Microsoft.

Azure Cognitive Search は、次のアプリケーション シナリオに適しています。Azure Cognitive Search is well suited for the following application scenarios:

  • ユーザー定義のプライベートな検索インデックスへの異種コンテンツの統合。Consolidate heterogeneous content into a private, user-defined search index.

  • 関連性のチューニング、ファセット ナビゲーション、フィルター (地理空間検索)、同意語マッピング、オートコンプリートなど、検索に関連した機能を容易に実装。Easily implement search-related features: relevance tuning, faceted navigation, filters (including geo-spatial search), synonym mapping, and autocomplete.

  • Azure Blob Storage や Cosmos DB に格納されている未区分の大きなテキストや画像ファイル、アプリケーション ファイルを検索可能な JSON ドキュメントに変換。Transform large undifferentiated text or image files, or application files stored in Azure Blob storage or Cosmos DB, into searchable JSON documents. これは、外部処理を追加するコグニティブ スキルを通してインデックス時に行われます。This is achieved during index through cognitive skills that add external processing.

  • 言語分析またはカスタム テキスト分析を追加。Add linguistic or custom text analysis. 英語以外のコンテンツがある場合、Azure Cognitive Search では、Lucene アナライザーと Microsoft の自然言語プロセッサの両方がサポートされます。If you have non-English content, Azure Cognitive Search supports both Lucene analyzers and Microsoft's natural language processors. また、生コンテンツの特殊な処理 (分音記号のフィルター処理や、文字列内のパターンの認識と保持など) を実行するようにアナライザーを構成することもできます。You can also configure analyzers to achieve specialized processing of raw content, such as filtering out diacritics, or recognizing and preserving patterns in strings.

特定の機能の詳細については、「Azure Cognitive Search の機能」を参照してくださいFor more information about specific functionality, see Features of Azure Cognitive Search

ファースト ステップHow to get started

次の 4 つのステップにより、主要な検索機能をエンド ツー エンドで試すことができます。An end-to-end exploration of core search features can be achieved in four steps:

  1. 共有される Free レベルの 検索サービスを作成します。または 課金対象レベルを選択して、自分のサービスでのみ使用される専用リソースを確保することもできます。Create a search service at the shared Free tier or a billable tier for dedicated resources used only by your service. すべてのクイックスタートとチュートリアルの作業は、共有サービスで完結できます。All quickstarts and tutorials can be completed on a shared service.

  2. ポータル、REST API.NET SDK、または他の SDK を使用して 検索インデックスを作成します。Create a search index using the portal, REST API, .NET SDK, or another SDK. 検索可能なコンテンツの構造は、インデックス スキーマによって定義されます。The index schema defines the structure of searchable content.

  3. "プッシュ" モデルを使用して任意のソースから JSON ドキュメントをプッシュして コンテンツをアップロードします。または、ソース データが Azure 上にある場合は "プル" モデル (インデクサー) を使用します。Upload content using the "push" model to push JSON documents from any source, or use the "pull" model (indexers) if your source data is on Azure.

  4. ポータルの 検索エクスプローラーREST API.NET SDK、または他の SDK を使用して、インデックスを照会します。Query an index using Search explorer in the portal, REST API, .NET SDK, or another SDK.

ヒント

データ インポート ウィザードと Azure データ ソースの使用から始めることによって手順を最小限に抑え、インデックスの作成、読み込み、照会を数分で行うことができます。Minimize steps by starting with the Import data wizard and an Azure data source to create, load, and query an index in minutes.

検索オプションの比較Compare search options

お客様から、Azure Cognitive Search が他の検索に関連するソリューションと比較してどうなのかよくお問い合わせいただきます。Customers often ask how Azure Cognitive Search compares with other search-related solutions. 主な相違点を次の表に示します。The following table summarizes key differences.

比較対象Compared to 主な相違点Key differences
Microsoft SearchMicrosoft Search Microsoft Search は、SharePoint 内のコンテンツに対してクエリを実行する必要がある、Microsoft 365 の認証済みユーザーを対象としています。Microsoft Search is for Microsoft 365 authenticated users who need to query over content in SharePoint. すぐに使用できる検索環境として提供され、管理者によって有効にされて構成が行われます。Microsoft や他のソースから提供されているコネクタを通じて外部コンテンツを受け入れることができます。It's offered as a ready-to-use search experience, enabled and configured by administrators, with the ability to accept external content through connectors from Microsoft and other sources. それが目的に合致していれば、Microsoft Search と Microsoft 365 は、試す価値のある選択肢となります。If this describes your scenario, then Microsoft Search with Microsoft 365 is an attractive option to explore.

これに対し、Azure Cognitive Search は、所有するデータやドキュメントを、多くの場合さまざまなソースから取り込んで定義したインデックスに対してクエリを実行します。In contrast, Azure Cognitive Search executes queries over an index that you define, populated with data and documents you own, often from diverse sources. Azure Cognitive Search はインデクサーにより複数の Azure データ ソースに対するクローラー機能を備えていますが、インデックス スキーマに準拠している任意の JSON ドキュメントを 1 つの統合された検索可能なリソースにプッシュできます。Azure Cognitive Search has crawler capabilities for some Azure data sources through indexers, but you can push any JSON document that conforms to your index schema into a single, consolidated searchable resource. また、機械学習と字句解析器を含むようにインデックス作成パイプラインをカスタマイズすることもできます。You can also customize the indexing pipeline to include machine learning and lexical analyzers. Cognitive Search は、より大きなソリューションのプラグイン コンポーネントとなるように作成されているため、プラットフォームにかかわらず、ほぼすべてのアプリに検索機能を統合することができます。Because Cognitive Search is built to be a plug-in component in larger solutions, you can integrate search into almost any app, on any platform.
BingBing Bing Web Search API は Bing.com のインデックスで送信された語句と一致するものを検索します。Bing Web Search API searches the indexes on Bing.com for matching terms you submit. インデックスは、公開サイトの HTML、XML、および他の Web コンテンツから構築されます。Indexes are built from HTML, XML, and other web content on public sites. 同じ基板上に構築されている Bing Custom Search は、個々の Web サイトに範囲指定して、各 Web コンテンツ タイプに対して同じクローラー テクノロジを提供します。Built on the same foundation, Bing Custom Search offers the same crawler technology for web content types, scoped to individual web sites.

Cognitive Search では、インデックスを自分で定義してデータを投入することができます。In Cognitive Search, you can define and populate the index. インデクサーを使用して Azure データ ソース上のデータをクロールしたり、インデックスに適合する JSON ドキュメントを検索サービスにプッシュしたりすることができます。You can use indexers to crawl data on Azure data sources, or push any index-conforming JSON document to your search service.
データベース検索Database search 多くのデータベース プラットフォームには、組み込みの検索エクスペリエンスが含まれます。Many database platforms include a built-in search experience. SQL Server にはフル テキスト検索があります。SQL Server has full text search. Cosmos DB や同種のテクノロジには、クエリ可能なインデックスがあります。Cosmos DB and similar technologies have queryable indexes. 検索とストレージを結合する製品を評価するとき、採用する方法を決めるのが困難な場合があります。When evaluating products that combine search and storage, it can be challenging to determine which way to go. 多くのソリューションでは両方が採用され、ストレージには DBMS が、専用の検索機能には Azure Cognitive Search が使用されています。Many solutions use both: DBMS for storage, and Azure Cognitive Search for specialized search features.

DBMS 検索と比較すると、Azure Cognitive Search は異種ソースからのコンテンツを格納し、56 言語で言語対応のテキスト処理 (語幹検索、レンマ化、語形) などの専用のテキスト処理機能を提供します。Compared to DBMS search, Azure Cognitive Search stores content from heterogeneous sources and offers specialized text processing features such as linguistic-aware text processing (stemming, lemmatization, word forms) in 56 languages. また、スペルミスの単語のオート コレクト、シノニム候補スコアリング コントロールファセット、およびカスタムトークン化もサポートしています。It also supports autocorrection of misspelled words, synonyms, suggestions, scoring controls, facets, and custom tokenization. Azure Cognitive Search のフル テキスト検索エンジンは情報取得の業界標準である Apache Lucene に基づいて構築されています。The full text search engine in Azure Cognitive Search is built on Apache Lucene, an industry standard in information retrieval. ただし、Azure Cognitive Search では逆インデックスの形式でデータを保持しますが、真のデータ ストレージの代わりにはならないため、その役割として使用することはお勧めしません。However, while Azure Cognitive Search persists data in the form of an inverted index, it is not a replacement for true data storage and we don't recommend using it in that capacity. 詳しくは、こちらのフォーラム投稿をご覧ください。For more information, see this forum post.

リソース使用率も、このカテゴリで別途考慮する必要があります。Resource utilization is another inflection point in this category. インデックス付けと一部のクエリ操作は、多くの場合、計算を大量に使用します。Indexing and some query operations are often computationally intensive. DBMS からクラウドの専用ソリューションに検索をオフロードすることにより、トランザクション処理用のシステム リソースを保持します。Offloading search from the DBMS to a dedicated solution in the cloud preserves system resources for transaction processing. さらに、検索を外部化することで、クエリのボリュームに合わせてスケールを簡単に調整できます。Furthermore, by externalizing search, you can easily adjust scale to match query volume.
専用の検索ソリューションDedicated search solution 全機能を持つ専用の検索を使用する場合、最後の比較カテゴリはオンプレミス ソリューションかクラウド サービスかです。Assuming you have decided on dedicated search with full spectrum functionality, a final categorical comparison is between on premises solutions or a cloud service. 多くの検索テクノロジには、インデックスの作成とクエリ パイプラインの管理、豊富なクエリとフィルター構文へのアクセス、ランクと関連性の管理、自主的な高度な検索の機能が用意されています。Many search technologies offer controls over indexing and query pipelines, access to richer query and filtering syntax, control over rank and relevance, and features for self-directed and intelligent search.

クラウド サービスは、オーバーヘッドとメンテナンスが最小限で済み、スケールが調整可能なターンキー ソリューションを望むお客様に最適の選択肢です。A cloud service is the right choice if you want a turn-key solution with minimal overhead and maintenance, and adjustable scale.

クラウドの枠組みでは、複数のプロバイダーがフルテキスト検索、地理空間検索、検索入力の程度のあいまいさを処理する機能など、同等の基本機能を備えるソリューションを提供しています。Within the cloud paradigm, several providers offer comparable baseline features, with full-text search, geo-search, and the ability to handle a certain level of ambiguity in search inputs. 使用環境に最も合うものを判断する場合、通常は、特化した機能か、API、ツール、管理の容易さと全体的な単純さが決め手になります。Typically, it's a specialized feature, or the ease and overall simplicity of APIs, tools, and management that determines the best fit.

クラウド プロバイダーの中で Azure Cognitive Search は、Azure 上のコンテンツ ストアとデータベースに対するフルテキスト検索のワークロードに関して最も強力で、情報の取得とコンテンツのナビゲーションの両方を主に検索に依存するアプリに適しています。Among cloud providers, Azure Cognitive Search is strongest for full text search workloads over content stores and databases on Azure, for apps that rely primarily on search for both information retrieval and content navigation.

以下のような大きな強みがあります。Key strengths include:

  • インデックス層での Azure データ統合 (クローラー)Azure data integration (crawlers) at the indexing layer
  • Azure Private Link との統合によって、インターネットを回避するというセキュリティ要件をサポートAzure Private Link integration to support off-internet security requirements
  • AI 処理との統合によって、検索不可能な各種コンテンツがテキスト検索可能に。Integration with AI processing to make unsearchable content types text-searchable.
  • 56 の言語での堅実なフルテキスト検索を実現するアナライザーによる言語分析とカスタム分析Linguistic and custom analysis, with analyzers for solid full text search in 56 languages
  • 重要な機能: 豊富な照会言語、関連性チューニング、ファセット、オートコンプリート、同意語、地理空間検索、結果の構成。Critical features: rich query language, relevance tuning, faceting, autocomplete, synonyms, geo-search, and result composition.
  • Azure のスケール、信頼性、世界クラスの可用性Azure scale, reliability, and world-class availability

Microsoft のお客様は、オンライン カタログ、基幹業務プログラム、およびドキュメント検索アプリケーションを含む、Azure Cognitive Search の機能を最大限利用できます。Among our customers, those able to leverage the widest range of features in Azure Cognitive Search include online catalogs, line-of-business programs, and document discovery applications.

次の動画をご覧くださいWatch this video

この 15 分間のビデオでは、プログラム マネージャー Luis Cabrera が Azure Cognitive Search を紹介しています。In this 15-minute video, program manager Luis Cabrera introduces Azure Cognitive Search.