とある技術の開発日記

Diary of irregular phrase programmer

Webサイトを使って簡単に始めるAzureSearch!!

この記事はAzure Advent Calendar 2014の11日目の記事になります。

AzureSearchという機能が2014年8月21日に発表されてから*14ケ月が経っているのですが、未だに触れていなかったのでこの機会に触ってみました。

実際には4ケ月経って何かしらの変化があるかと思ったのですが特に目立った変更点もないので、今回はプレビューポータルが日本語になったし、ちょっと触ってみたい方向けのライトな記事になります。

AzureSearchとは

簡単に言うと、オレオレ検索エンジンが簡単に作れるサービスです。公式サイトではSearch-as-a-service*2と表記してあります。検索エンジンと言っても。検索対象のデータは自分自身でセットする必要があります。

クラウドならではの特徴としてスケールアウトが簡単に行えるのが一番の特徴ではないでしょうか。お試しで使うだけなら無料でも使えますが、有料プランになるとユニット単位の時間課金になります。

f:id:airish9:20141210210206j:plain

料金に関する詳細

さっそく使ってみる

今回、使用するにあたってNo1氏としばやん氏の素晴らしいエントリを参考にしています。

Azure Search ちょっとさわってみた « ブチザッキ

Azure Search を使ってツイートログ検索を実装してみた - しばやん雑記

基本的にこの当時と変わりは無いのですが、プレビューポータルが日本語に対応したので英語が苦手な方でも抵抗なく作れるようになっています。

また、後ほど記述しますがRedDog周りのアップデートで当時に比べて楽になっている部分もあります。

Searchの作成とインデックスの作成

1.まずは左下の「新規」からSearchを選択

f:id:airish9:20141210211422j:plain

2.名称、リージョン、金額プラン等々を入力すると数分程度でAzureSearchが利用できます。

3.インデックスを作成してデータを投入

この辺りはREST APIを叩いたり、RedDog.Searchを使用しても良いのですが、コーディングしたくない方はクイックスタートガイドにあるようにFiddlerを使って試してみるのも良いと思います。(自分の好きなレイアウトを作ろうと思うと大変でしょうが…)

クイックスタートはスクリーンショット付きで細かく記述してあるので参考にしてみてください。

Azure Search の使用

RedDog.Searchのanalyzer対応

しばやん先生のおかげでRedDog.Searchでインデックス作成時にanalyzerを指定できるようになりました。

reddog-io/RedDog.Search · GitHub

日本語の列を作るときは以下のようにすると日本語対応の列が作成する事ができます。(この場合はcontent列に日本語を指定している)

await client.CreateIndexAsync(new Index("tweets")
    .WithStringField("id", p => p.IsKey().IsRetrievable())
    .WithStringField("content", p => p.IsSearchable().IsRetrievable().Analyzer(Analyzers.Japanese))
    .WithDateTimeField("createdOn", p => p.IsRetrievable().IsSortable())

RedDog.Search.PortalがSiteExtensionで利用可能に

RedDog.Searchとは別にRedDog.Search.PortalというAzureSearchを操作できるポータル画面がWebサイトで提供されていましたが。いつの間にかWebサイトのSiteExtensionに追加されていました。

reddog-io/RedDog.Search.Portal · GitHub

1.空のWebサイトを作った後に拡張機能の追加を選択*

f:id:airish9:20141210221850j:plain

f:id:airish9:20141210222409j:plain

2.アプリケーション設定を追加

RedDog.SearchPotalからAzureSearchの接続に仕様する設定を追加します。
Azure.Search.ServiceNameにAzureSearchのServiceName、Azure.Search.ApiKeyにAzureSearchのキーを設定します。

f:id:airish9:20141210225931j:plain

追加した拡張機能を参照するとRedDog.Search.Portalが表示されます。

f:id:airish9:20141210224136j:plain

f:id:airish9:20141210232018j:plain

RedDogのポータルはAzureポータルからできない事もできます。一例を挙げるとインデックスの列削除やデータの検索等も行う事ができます。

CSVからデータの追加もできるので、Webサイトさえ立ててしまえば非コーダーの方でもAzureSearchが利用できそうですね。

Visual Studio 14 CTP4がリリースされました

Windows10のTPで盛り上がっている中、Visual Studio 14 CTP4がリリースされました。

リリースノートはこちらをご覧ください

Visual Studio "14" CTP release notes

気になるside-by-sideに関してですが、相変わらずやるなら自己責任でよろしく状態。

Although these CTPs are intended to be installed side-by-side together with earlier versions of Visual Studio, complete compatibility of every CTP is not guaranteed.

もちろんAzureのギャラリーにもCTP4が登場しています。

f:id:airish9:20141008004800j:plain

ASP.NET vNextのプロジェクト周りの機能追加が多い印象。C#に関する変更は大きな物は無さげです。

Visual Studioと同時にTypeScriptも1.1へバージョンアップ

コンパイラが今までの4.5倍速くなったよーとの事です。
ちなみに1.1の修正内容に関しては日本語で既にまとめられている方がいるのでそちらを参考にさせて頂きましょう。

詳細な内容は今後少しづつ触っていこうと思います。

Microsoft Azureを今から始める方へのおすすめリンク集

今からMicorosoft Azureを始めてみようと思う方へのリンク集です。 (半分以上は自分の備忘録用)

以前、No1(@kamebuchi)さんがリンク集を作成されています。
とても素晴らしいリンク集なので見てみると良いと思います。

Windows Azure お役立ちリンク集的ななにか « ブチザッキ

このエントリでは以前のリンク集に無く最近公開された物をご紹介していきます。

Azure○○シリーズ

クラウドデザインパターン勉強会

JAZUG主催でクラウドデザインパターン本の解説勉強会を行っています。スライドと動画が公開されているのでクラウドデザインパターンの本と合わせてご覧になる事をおススメします。

クラウドデザインパターン Azureを例としたクラウドアプリケーション設計の手引き

クラウドデザインパターン Azureを例としたクラウドアプリケーション設計の手引き

  • 作者: Alex Homer ;John Sharp;Larry Brader ;Masashi Narumoto ;Trent Swanson
  • 出版社/メーカー: 日経BP社
  • 発売日: 2014/07/09
  • メディア: Kindle版
  • この商品を含むブログを見る

現在は第5回までの開催が予定されているようです。勉強会に参加したい方はJAZUGのDoorkeeperメンバに参加すると良いでしょう。
Japan Azure User Group | Doorkeeper

第1回 (Doorkeeper)

第2回 (Doorkeeper)

  • クラウドデザインバターン Azureを例としたクラウドアプリケーション設計の手引 紹介(野村一行さん)スライド
  • クラウドデザインパターン超入門= クラウド基本の「き」 「オートスケーリング」と「コンピューティングの分割、配置 (橋本圭一さん) スライド | 動画
  • Compensating Transaction、Index Table パターン (近江武一さん) スライド | 動画

公開され次第随時追加していきたいと思います。