Azure Cognitive Searchは、人工知能(AI)を活用したクラウド検索サービスです。従来はAzure Searchという名称でした。Microsoftの検索サービスであるBingやMicrosoft 365のサービスのアプリケーションで培われた実績をベースに、AIを搭載して自然言語だけでなく音声や画像など、非構造化データの精度の高い検索を可能にします。
金融業界をはじめ製造業や流通業など、さまざまな業界の企業において、サービスや業務効率化のためにAIを採用することが多くなりました。したがって扱うデータが膨大になるとともに、画像、音声、映像など非構造化データをインデックス化する必要が生じます。
このような大量かつ多様なデータをクラウド上で扱うシステムの開発に、Azure Cognitive Searchは役立ちます。
ここでは、Azure Cognitive Searchの概要、機能と使い方、価格を整理します。
Azure Cognitive Searchの概要
PaaS(Platform as a Service)の全文検索機能として提供されていた機能がAzure Searchですが、従来の機能にAIを加えてAzure Cognitive Searchと名称が変更されました。Web、モバイルアプリ、エンタープライズアプリケーションに検索機能を追加できます。
AzureCognitiveSearchの特徴
Azure Cognitive Searchの特徴は、構造化データや非構造化データなどさまざまなデータを保存できることです。また、データマイニングによって蓄積したデータの中から、必要なデータだけを抽出、検索ができることも特徴の1つです。
このデータの保存と抽出・検索の特徴について詳しく見ていきましょう。
インデックスとは?
まず、Azure Cognitive Searchの特徴を理解するために、「インデックスとは何か」について説明します。
インデックスとは、検索エンジンが検索結果を表示するために使用するデータベースです。
「データを蓄積しておくための箱」とイメージすると理解がしやすいです。
インデックスには、コンテンツのタイトル、キーワード、説明文などの情報が格納されています。
Azure Cognitive Searchでは、Excel形式の構造化データだけでなく、テキスト、画像、音声といった非構造化データなどのさまざまなコンテンツをインデックスに登録できます。
これにより、ユーザーがコンテンツを検索する時間短縮が期待できるでしょう。
インデクサーとは?
インデクサーは、Azure Cognitive Searchがデータを取得し、インデックスを更新するための重要な機能です。
インデクサーの特徴は、自動化されたデータ収集と更新が可能であることです。
AIを活用してデータを提供してくれるため、常に最新の情報を検索結果として表示します。
例えば、Webサイトのコンテンツやデータベースの変更があった場合に、手動で更新する必要がなく、情報の更新をインデクサーが行います。これにより、データの正確性を確保し、データの取得や更新にかける時間の削減につながります。
Azure Cognitive Searchのインデクサー機能では、毎日、毎時間など定期的にデータを収集するように指示を出すことも可能です。
ナレッジストアとは?
Azure Cognitive Searchで、インデックスを作成する途中で、「ナレッジストアへのエンリッチメントの保存」というチェック項目が出てきます。
ナレッジストアとは、Microsoft Azureが提供する「ストレージサービス」に、データを保存することです。
蓄積したデータをナレッジストアに保存して、さらなるデータの活用ができるという利点があります。
Azure Cognitive Searchを使って、インデックスにデータを保存し、抽出・検索が可能です。
- 「インデックスに蓄積したデータを解析したい」
- 「検索結果で出てきたデータを活用したい」
このようなときにナレッジストアを利用します。
精度の高いデータマイニングを実現
Azure Cognitive Searchの特徴の1つとして、高精度のデータマイニングができることがあげられます。
Azure Cognitive Searchでは、クエリという言語を使って、インデックスの中から指定した情報の抽出が可能です。この抽出を行う作業がデータマイニングです。
また、ナレッジマイニングとも呼ばれています。
データマイニングは、最新の自然言語処理技術や機械学習アルゴリズムを活用してデータを抽出するため、高精度な抽出を実現できます。
なぜデータマイニングが重要なのか
データマイニングは、現代のビジネスにおいて不可欠なツールです。
その理由は、以下の2つになります。
- 企業の課題の抽出が可能
- 分析結果を未来予測に活かせる
この2点について詳しく見ていきましょう。
課題の抽出
まず、課題の抽出について解説します。
データマイニングを使用することで、企業が持つ大量のデータから特定のパターンや傾向をつかむことが可能です。
例えば、販売データを分析すると、どの製品が最も売れているか、売上が季節ごとにどのように変動するかなどを視覚的に見やすい状態で表示することが可能になります。
これにより、商品の在庫管理や販売戦略の最適化が期待できるでしょう。
分析結果を未来予測に活かす
データマイニングを用いることで、分析結果を未来予測に活かすことができます。
過去のデータをもとに、将来のトレンドや出来事を予測するためのモデルを構築できるため、リスク管理や市場戦略の策定に役立つでしょう。
たとえば、金融業界では、データマイニングを用いて顧客の信用スコアを予測し、貸し倒れのリスクを最小限に抑える取り組みが行われています。
同様に、小売業では販売予測モデルを構築し、在庫を最適化して商品の供給と需要を調整します。
AzureCognitiveSearchの活用シーン
Azure Cognitive Searchは、一例として次のような活用シーンに役立ちます。
APIによる簡単な検索の実装、検索コンテンツ管理の実現
外部の検索ソリューションを利用すると、インデックスの定義や検索システムの管理を自由に行えない場合があります。カスタマイズなどの自由度も制限されることが多いでしょう。しかし、Azure Cognitive Searchは、検索を独自で管理したい場合に役立ちます。
Azure以外のクラウドで構築したシステムに検索機能を追加したい場合は、外部コンテンツのデータリソースもしくはJSONドキュメントによって、Azure Cognitive Searchを利用できます。Azure上のストレージのコンテンツは、インデクサーによって検索が可能になります。
また、検索機能を実装するとき、Azure Cognitive Search APIによって商用の検索エンジンと同レベルのユーザーエクスペリエンスを提供します。検索クエリや検索語句の関連付け、地理的な空間検索を含むフィルタリングなど高度な検索機能を備えています。
非構造化データの検索
Azure Blob StorageやCosmos DBに格納した非構造化データ、あるいは外部のリソースを検索可能にします。たとえばOCR(光学式文字読取装置)でスキャニングしたテキストからキーフレーズの抽出や翻訳を行い、AIで構造化して検索可能にします。画像ファイルやアプリケーションファイルにインデックスを追加して、検索可能にすることもできます。
Azure Cognitive Searchの機能
自由形式のテキスト検索として、サポートされているクエリの構文を利用したフルテキスト検索、演算子を用いた単純クエリ構文による検索、ワイルドカードやあいまいな語句によるLucence クエリ構文の検索ができます。スコアリングプロファイルを用いた関連性のモデル化や、価格帯や品目などによるフィルター処理も可能です。さらに、地理的な空間を処理した検索機能も備えています。
ユーザーエクスペリエンス
ユーザーエクスペリエンスとしては、Bingなどの検索エンジンでも馴染みの深いオートコンプリート(検索語句の自動入力)、自動的な検索語句の関連付け(シノニム)、強調表示、並べ替えなどの検索を支援する機能があります。
AI処理とマイニング
AIの機能では、音声や映像のような構造化されていないデータから、検索インデックスのためのテキストを抽出します。学習を行わなくても組み込みスキルを使って、組織の名称や場所などを検索条件に加えることもできます。ナレッジストアの拡張機能を使うと、抽出した検索のインデックスを格納して分析に利用したり、他のアプリケーションに読み込んだりすることも可能です。
インデックス作成機能
JSONのデータ構造であれば、すべてのデータソースの情報からインデックスを受け入れます。Azure Cognitive SearchはJSONの複合型とコレクションをサポートしているため、外部のデータセットが階層構造や入れ子構造になっていても問題ありません。カスタム字句アナライザー、言語アナライザーのコンポーネントもあります。
PaaSの特徴では、ポータルの監視機能で1 秒あたりのクエリ数や待ち時間など、検索処理をモニタリングできます。ストレージ内の暗号化が必要であれば、利用者の暗号キーで補足して機密性を維持することが可能です。Azure Cognitive Searchは、99.9%のSLAの高可用によるスケーラブルなプラットフォーム上で稼働します。
AzureCognitiveSearchの使い方
Azure Cognitive Searchは、大きな流れとして「プロビジョニング」「インデックス作成」「データの読み込み」で使うことができます。
1.プロビジョニング
プロビジョニングは、Azure portalあるいはAzure Resource Management APIで設定します。大量のクエリ負荷や、大量のドキュメントに対応したパーテーションを追加するような場合は、有料オプションで拡張することが可能です。
2.インデックス作成
コンテンツをアップロードする前に、インデックスのスキーマを定義します。スキーマはAzure Portalあるいは.NET SDK やREST API のプログラムによって作成できます。インデックスの作成においては、Azure SQLデータベースから作成する場合、Azure Storageに格納されているJSON BLOBから作成する場合、複数のデータソースにインデックスを付ける場合などによって方法が異なります。
3.データの読み込み
検索するデータの読み込みには、プッシュモデルまたはプルモデルがあります。プッシュモデルでは、SDKまたは REST APIを介して、JSON形式によるあらゆるデータセットから読み込むことができます。プルモデルでは、インデクサーを用いて外部データソースから読み込みます。Azure SQL Database、Azure Cosmos DB、Azure Blob StorageとAzure の仮想マシンにホストされているSQL Serverでインデクサーを利用することが可能です。
Azure Cognitive Searchの価格
プラン名 | Freeプラン | Basicプラン | Standardプラン | Storage Optimizedプラン |
---|---|---|---|---|
1インデックスあたりのストレージ容量 | 50MB | 2GB | S1:25GB S2:100GB S3:200GB |
L1:1TB L2:2TB |
パーティション数※ | 1つのみ | 1つのみ | 最大12 S3は3つまで |
最大12 |
レプリカの作成 | ✕ | 〇 | 〇 | 〇 |
ファイアウォールの使用 | ✕ | 〇 | 〇 | 〇 |
災害対策 (冗長化) |
✕ | ✕ | 〇 | 〇 |
1パーティションの価格 (時間当たり) |
0円 | 18.79円 | S1:62.72円 S2:250.59円 S3:501.74円 |
L1:542.28円 L2:1,084.42円 |
価格(月換算) | 0円 | 13,714円 | S1:45,783円 S2:182,928円 S3:366,268円 |
L1:395,862円 L2:791,622円 |
価格は、東日本リージョンで使用するときの価格です。(2023年8月現在)
※為替レートにより変動します。
※パーティションとは、データ蓄積用のインデックスを指します。
Azure Cognitive Searchの価格プランは、表に記載した通り、容量や作成可能なインデックス数に応じて多くのプランが用意されています。
- Free
- Basic
- Standard(S1~S3まで)
- Storage Optimized(L1とL2)
ここでは、それぞれのプランの特徴について解説します。
Freeプラン
Freeプランは、小規模プロジェクト向けのプランです。
チュートリアル・コードのサンプルを実行するなど、制限付きの検索サービス を作成可能です。
その他、作成可能なインデックス数は1つまで、設定可能なインデクサー数が3つまで、利用可能ストレージが50MBまでといった制限もあります。
Freeプランは、企業向けのプランではないため、まずはサービスを使ってみたいという方におすすめです。
Basicプラン
Basicプラン以上で、インデックスのレプリカを作成することも可能です。
また、セキュリティを高めるために、暗号化キーを作成する、ファイアウォールを使用する場合も、Basicプラン以上の契約が必要になります。
Basicプランの価格は、1インデックスあたり毎時間、18.79円(0.14ドル)です。
※為替レートにより変動します。
ベースとなるインデックスは、1つしか作成できませんが3つのレプリカの作成が可能です。
Standardプラン
Standardプランは、災害対策も可能なプランです。
Azure Cognitive Searchを利用する上で、「災害対策を行いたい」「画像データなど容量の大きいデータを大量に保存したい」という要件のときにこのプランの契約が必要になります。
StandardプランにはS1~S3までのタイプがあり、作成可能な最大インデックス数や利用可能ストレージ容量が異なります。
それぞれの料金に関しては、Microsoftの公式ページを参照した上で契約してください。
Storage Optimized
社内にテラバイト規模の大量のデータがあり、そのデータをAzure Cognitive Search内で利用したいという要件のときに、Storage Optimizedのプランを利用します。
頻繁に変更することのない大規模なインデックスに対して推奨されるプランになります。
Storage Optimizedを契約する場合は、変更頻度や検索の待ち時間など、用途に適しているか確認の上契約を行いましょう。
まとめ
Azure Cognitive Searchは、インデックスにデータを蓄積し、そのデータをマイニングすることで、プログラムやコードを書かずにAIを使った検索ツールを作成可能なサービスです。
さらに、Excel形式の構造化データだけでなく、非構造化データもインデックスに保存可能なことが特徴です。
エンターテイメント分野に限らず、テレワークやオンラインセミナーなどによって企業や大学でもビデオの利用が増加しています。
非構造化データは増加傾向にあり、AIによるコグニティブなサービスの需要は年々上昇しています。
検索のアルゴリズムがビジネスを左右する時代に、Azure Cognitive SearchのようなAIを活用した検索は、今後ますます重要な位置づけになるでしょう。
サービスの利用開始が気軽にできるように、簡単なデモ用のデータセットやFreeプランも用意されているので、ぜひ一度ご利用ください。