Azure Blob Storage 向けの Azure Search インデクサーのパブリック プレビューを公開

執筆者 Eugene Shvets (Senior Software Engineer, Azure Search)

このポストは、2 月 9 日に投稿された Azure Search indexer for Azure Blob Storage now in public preview の翻訳です。

 

マイクロソフトは Azure Search によってお客様に優れた検索機能をすばやく構築していただけるよう、データのインデックス作成時の負担を軽減する取り組みを進めています。Azure SQL Database および DocumentDB 向けに提供している Azure Search インデクサーはおかげさまで皆様にご好評いただいており、そうしたお客様から、Azure Blob Storage でも同様の機能を実現してほしいという声がありました。

BLOB からのテキストの抽出は、扱いにくい場合があります。PDF や DOC/XLS のような形式のファイルはバイナリであり、解析が困難です。また、コンテンツ タイプの検出やメタデータの抽出も複雑な作業になることがあります。優れたツールは存在するものの、そうしたツールをインデックス作成のワークフローに取り入れるには、やはり多大な労力が必要になり、お客様側で多くのコーディングとインフラストラクチャの管理を行うことが求められます。マイクロソフトは、このような負担からお客様を解放したいと考えました。

そしてこのたび、Azure Blob Storage 向けの Azure Search インデクサー (略称 Azure Search BLOB インデクサー) のパブリック プレビューを公開しました。Azure Search BLOB インデクサーを利用すると、以下の形式のドキュメントからテキスト コンテンツや BLOB メタデータをシームレスに抽出できます。

  • PDF
  • Microsoft Office: DOCX/DOC、XLSX/XLS、PPTX/PPT、MSG (Outlook の電子メール)
  • HTML、XML、ZIP、EML
  • プレーン テキスト ファイル

このインデクサーはテキスト コンテンツを抽出するだけでなく、カスタム BLOB メタデータやコンテンツ固有のドキュメント メタデータ (PDF のタイトルや作成者のメタデータなど) も抽出します。インデクサーの機能の詳細については、「Azure Blob Storage 内ドキュメントのインデックスを Azure Search で作成する」をご覧ください。

既に、何社かのお客様に BLOB インデックスの作成機能をご利用いただいています。世界でも多様な分析試験サービス (食品試験など) を提供する ALS 社 (英語) もその 1 つです。同社のアプリケーションで重要なのは、適切な法的文書や規制文書へのスムーズなアクセスを顧客に提供することです。対象となるドキュメント (大半が PDF や Word) は、BLOB ストレージに格納されています。Azure Search BLOB インデクサーを利用すれば、こうしたドキュメントの検索をわずかな開発作業で簡単に実現できます。ALS の上級開発者である Nuno Coimbra 氏は次のように述べています。

「BLOB インデクサーを利用することで、ドキュメント データの抽出とインデックス作成に対してほぼ『セットアップして後は放置する』といったアプローチを取ることができ、煩雑な作業から解放されました。このインデクサーは、特に可用性とスケーラビリティに関して、当社にとって非常に管理が容易なソリューションです」。

Invu 社 (英語) は、英国でドキュメント管理ソリューションや買掛金勘定ソリューションを提供しているソフトウェア/ソリューション ベンダーです。Invu の CTO である Stuart Evans 氏は次のように述べています。

「当社が提供する一流のビジネス ソリューションの一番の売りは、強力でコスト効率に優れた検索機能です。この機能には現在 Azure Search を利用していることはもちろん、Azure Search インデクサーを利用して、Azure DocumentDB に格納されたメタデータに対するテキスト検索を実現しています。最近では、新しい BLOB インデクサー機能も試しています。この機能を利用すれば、アプリケーションから多くの複雑なコードを削除できるようになるはずです」。

BLOB インデックス作成機能のセットアップ

BLOB インデックス作成機能をセットアップするには、Azure BLOB データソースと検索インデックスを作成した後 (まだ存在しない場合)、そのデータソースを対象のインデックスに関連付けるインデクサーを作成します。現時点では REST API を使用する必要がありますが、近いうちに .NET SDK と Azure ポータルでも BLOB インデックス作成機能がサポートされる予定です。

BLOB データソースの作成

 POST https://[service name].search.windows.net/datasources?api-version=2015-02-28-Preview<br> Content-Type: application/json<br> api-key: [admin key]<br>{<br>    "name" : "my-blob-datasource",<br>    "type" : "azureblob",<br>    "credentials" : { "connectionString" : "<my storage connection string>" },<br>    "container" : { "name" : "my-container", "query" : "my-folder (can be null)" }<br> } 

検索インデックスの作成

 POST https://[service name].search.windows.net/indexes?api-version=2015-02-28-Preview <br>Content-Type:application/json<br>api-key: [admin key]<br>{<br>  "name" : "my-index",<br>  "fields": [<br>    {"name": "id", "type": "Edm.String", "key": true, "searchable": false}, <br>    {"name": "content", "type": "Edm.String", "filterable": false, "searchable": true } ] <br>} 

 

インデクサーの作成

 PUT https://[service name].search.windows.net/indexers/blob-indexer?api-version=2015-02-28-Preview<br>Content-Type: application/json<br>api-key: [admin key]<br>{<br>  "dataSourceName" : " my-blob-datasource ",<br>  "targetIndexName" : "my-index",<br>  "schedule" : { "interval" : "PT2H" }<br>} 

このように、作業はとてもシンプルです。作成したインデクサーは 2 時間ごとに実行され (スケジュールの間隔は 5 分~ 24 時間の範囲で構成可能)、新しい BLOB や更新された BLOB をすべて取得します。インデクサーの実行は Azure ポータルからでも、あるいは Get Indexer Status API を使用してプログラムでも監視できます。

Azure Search の機能強化にご協力ください

Azure Search BLOB インデクサーが皆様のお役に立つことを心から願っています。BLOB インデクサーの機能強化や Azure Search 全般に関してのご要望は、お気軽にこちら (英語) までお寄せください。