こんにちは。
今回は、Microsoft Azure の Azure Search を使って、ファイルサーバにあるドキュメントの検索をする方法です。
まぁー、別に新しい機能ではないんですけどね。
Azure Search とは
Azure Search って知ってますよね?ドキュメントを見るとこんな感じのことがかかれてます。
Azure Search は、Web、モバイル、およびエンタープライズ アプリケーションのプライベートな異種コンテンツに対するリッチな検索機能を追加するための API とツールを開発者に提供する、サービスとしての検索クラウド ソリューションです。 クエリはユーザー定義インデックスを介して実行されます。
前にこのブログでも一度取り上げてはいるけど、内容がなさすぎてちょっとひどいので、もうちょっと概要的なのをそのうち書こうかなw
Azure Blob Storage with Azure Search
今回は、Azure Blob Storage にPDF ファイルを置いて、それを Azure Search で取り込むやり方をためしました。
今回はどの程度できるのかを見たかったので、データのインポートで試しました。
データインポートの手順
Blob ストレージを作って、対象となるファイルを置いた後からの手順をペタペタ
![](/wp-content/uploads/2018/12/20181208cs000-1024x349.jpg)
まずは、Datasource の設定です。Azure Search と同期するデータの持ってくる場所の指定っすね。今回は、Azure Storage Blob です。
![](/wp-content/uploads/2018/12/20181208cs001-1024x596.jpg)
Cognitive Search を使う場合は設定する感じですね。
![](/wp-content/uploads/2018/12/20181208cs002-987x1024.jpg)
Enable OCR なんたらにチェックを付けるとこんな感じになります。
![](/wp-content/uploads/2018/12/20181208cs003-997x1024.jpg)
Index の設定です。簡単にいうと、Azure Search で持っているテーブルみたいなもんです。ここで、検索対象にしたり、Facetに使える項目にしたりとデータをどのように活用するかを設定する感じですね。今回はデフォルトのままです。
![](/wp-content/uploads/2018/12/20181208cs004-1024x782.jpg)
最後は、Indexer の設定です。DataSource と Index の同期の設定くらいに考えるとちょうどいいかも。
![](/wp-content/uploads/2018/12/20181208cs005-1024x664.jpg)
ということで、今回はデータのインポートを使って、Azure Search の各種設定を済ましてしまってるんでとても簡単です。
試した結果
試した結果はこんな感じで、うまくとれてるっぽいですね。
![](/wp-content/uploads/2018/12/20181208-search-01-1-1024x675.png)
一応元ネタも
![](/wp-content/uploads/2018/12/20181208-search-02-1-1024x1018.png)
若干順番がズレているものの、中身のテキストを検索するには困らない程度に文字情報を取得できていそうです。
※ 実際に使うには、精度の検証は必要だと思いますよ。
ちなみに、画像データも置いてみましたが、うまく文字の情報が抜けてないような感じでした。(前はできてたと思うんだけど、今回はたまたま??)
ですが、Cognitive Search の OCR の機能を有効にしたら、そこそこ取れてきた感じです。
![](/wp-content/uploads/2018/12/20181208-search-03-1-1024x672.png)
こっちも元ネタを
![](/wp-content/uploads/2018/12/20181207_164048000_iOS-473x1024.png)
読み取った文字列が、英語補正されちゃって日本語として認識できてないですねー。
この辺はチューニングしていけば、もうちょっと精度あげられるのかな??
まとめ
Azure Search は、CosmosDB と組み合わせて使うアーキパターンも多いですが、ファイル内のテキスト検索としても利用することもできます。
また、入力の補助として、ファセットなどの機能も使えますので、データ検索の効率化を図るようなエッセンスをアプリケーションに実装することができるのがとても面白い部分だと思います。
現時点で、日本で Azure Search を使えるリージョンは、西日本リージョンだけなのですが、みんなでぶん回して東日本リージョンンでも早く使えるようになるといいですよねぇー。
コメント