Azure Cognitive SearchのフリープランでノーコードAI検索エンジンを作成する


#Azure Cognitive SearchのフリープランでノーコードAI検索エンジンを作成する

## はじめに
Azure Cognitive Searchとは『モバイルおよび Web アプリ開発のための AI を活用したクラウド検索サービス』です。

出典：
https://azure.microsoft.com/ja-jp/services/search/

　
　
昔はよくElasticsearchなんかと比較されていたりしていたことがありましたが
AI検索エンジンとして・ビジネス適用性の高さ・既存の検索エンジンからの移行の手軽さの点で見ても
比較のしようのないくらい突き抜けた存在です。


##ざっくり特徴を紹介

###フルマネージドサービスなのでサーバ構築等も不要ですぐに試せる
フリープランもあるので更に気軽に試めせます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524081/0742a4b5-5100-6acc-c072-7dbd5f0ace2d.png)


###フリープランでもノーコードでAI検索機能を作成できる
メイン機能であるAI検索機能はフリープランでも試すことができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524081/970ee9e5-141e-f2be-53c4-51cdd0c8cb5b.png)


　
###ノーコードでデモ用の検索画面を作成できる

####デモ用アプリをボタンぽちぽちで作成可能
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524081/438586bb-057c-a698-29e6-f1c5e00ba300.png)

####作成したデモ用アプリの画面イメージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524081/1003eaf5-077f-659b-142c-4777a2ba2d28.png)





## AI機能でできること

AI機能には標準スキルとカスタムスキルがあります。

###標準スキル
標準のデータモデルを使用して、OCR検索・画像解析・ファイルからキーフレーズや人名等を抽出してタグ付けする機能や自動翻訳等が利用できます。 


###カスタムのスキル
思いつく限りのことはできますが
例えば以下のようなことができます。
・大量に登録した図面データから特定の記号・マーク・部品・素材等が入った図面を検索
・大量に登録した顔写真から、特定の人物の写真を検索

もっと詳しい情報は下記にあります。
https://docs.microsoft.com/ja-jp/azure/search/cognitive-search-custom-skill-interface


###Microsoft社の究極のデモ画面がすごすぎる！

カスタムスキルを使いこなせばここまでできる
『誰がケネディを殺したのか――公開された暗殺文書をマイクロソフトのAIで解読』デモ画面はこちら

デモ画面URL
https://jfk-demo.azurewebsites.net/#/search?term=oswald

ソースコードもGithubで公開されています
https://github.com/Microsoft/AzureSearch_JFK_Files

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524081/5fca418e-d96d-c2dd-590c-7f6390c2312e.png)


 

## サービスの登録から、デモ画面作成までの流れを簡単に紹介します！

さて、話が脱線しましたが
サービスの登録から、デモ画面作成までの流れをざっくり紹介します。

おおよそ30～60分あれば作れると思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524081/405ecb0e-6d87-9c55-22a2-70302f7854d0.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524081/45fa0ade-c3dc-994c-e5a2-cebd8eed7dd2.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524081/f2933f9e-3265-600e-46a4-f06e5aad9711.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524081/0e36cf71-b0fb-23af-e0f4-37a466eabae2.png)




## データを準備して、完成したデモ画面を使ってみる

30分くらいで作成した画面ですがかなり使えることがわかります。

### データ準備
Azure PortalのBlob Storageの管理画面からデータをアップロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524081/196f679a-77ee-05cd-c026-fd1be12c5626.png)
　
### デモ画面を使ってみる
取り込んだデータを検索してみます。
昔旅行に行った時の自然と思い出があふれる写真を登録したので『自然』というキーワードで検索してみます。

AIが写真を解析して、写真に対して『自然』『屋外』といったタグをつけてくれているので
テキストの情報を持たない写真を検索することができています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524081/ab765aea-9f17-6187-7451-e771093adba5.png)
　

次にエクセルのファイルを検索してみます。
エクセルファイル等のテキストデータ主体の情報も検索可能なことがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524081/a6467685-5fce-93a6-faeb-c24419a45174.png)
　

ファイル名、ファイル内のテキスト、ファイル内の画像の解析情報から検索することが可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524081/549571d0-1490-627f-886f-9c83235be102.png)


## どんなことに活用できるのか？

全文検索エンジンとしての活用
・ファイルサーバ、シェアポイント内に眠っているファイルの有効活用

・検索パフォーマンスが出せない既存のRDBをデータソースとして、高速全文検索エンジンとして有効活用

・検索性能の高さを活かした戦略的全文検索エンジンとしての活用

AI検索エンジンとしての活用
・図面データを学習データモデルを作成して、図面検索エンジンとして
　※特定のパーツの写真を見つけて検索するとか

・人物写真の学習データモデルを作成して、人物検索エンジンとして

※AI検索エンジンとしての活用はデータモデルをカスタムできるのでコストとの見合いはありますが。思いつく限りのことは実現できると思います。