Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

Elasticsearchハンズオンセミナー 第2回

みなさん、こんにちは。

松村です。


3/18(金)にElasticsearchハンズオンの第2回を開催しました。

f:id:acro-engineer:20160318134628j:plain:w480


前回は先輩方が中心に行っていたセミナーですが、
なんと、2週間前に先輩からの突然の無茶ぶりにより、
急遽若手中心のセミナーに変更。


途中、予定していた講師が突然体調不良で、講師の交代が行われるなど、
直前までドタバタだったのですが、
先輩方のフォローもあり、何とか実施することができました。

参加者の皆様からは、

「無料のセミナーとは思えないほど充実した内容だった。」
「初めてElasticsearchに触れたが、非常にわかりやすかった。」

という声をいただくことができ、頑張った甲斐がありました。


今回から、追加した異常検知のデモも好評でしたよ!


というわけで、今回は、司会を行った私(松村)とハンズオンの講師を行った樋口の2人で、
ハンズオンの感想(裏話?)を書きたいと思います。

松村(司会)

いきなり、司会になったときには、焦りました。

社会人相手のセミナーなんて、開いたこともないし、
2週間しか準備期間もなかったわけですから。


さらに今回は、セミナーの内容を見直したり、
異常検知のデモを追加したりと、
前日まで準備が大変でしたが、
好評の声をもらえて、嬉しかった!

最高ですね!
打ち上げのお酒も美味しかったです


参加してくださる皆様の満足を挙げるため、
次のセミナーも頑張ります!

樋口(講師)

一週間前に、突然、講師を交代することになったときには、
どうなるかと思いましたが、
無事、終わることができてよかった!!


前回は受講者として参加したのですが、
学ぶ立場と、教える立場って、こんなに違うものかと。。。
#当たり前ですね(^^;


連日の猛特訓で、先輩がたくさん教えてくれたので、
助かりました♪


Elasticsearchハンズオンでは、Elasticsearchの使い方以外にも、

  • Elasticsearchを使った実事例の紹介
  • Elasticsearchを使ったデモ(今回は異常検知)
  • 最新のElasticsearch情報

f:id:acro-engineer:20160318175306j:plain:w480

など、参加者の皆様に満足していただけるよう、
充実した内容になっているので、
是非参加してください!

どんどん、良いセミナーにしていきますよ!

最後に

ハンズオン後には、Elasticsearchに関する情報交換が盛んに行われました。

Elasticsearchの使い方に対するイメージも参加者によって多種多様であり、
たくさんの質問が飛び交う界になったので、情報共有の場として有意義になったのではないかと思います。

今後も継続的に開催しますので、まだの方は是非、以下からお申し込みください。

www.acroquest.co.jp


Acroquest Technologyでは、キャリア採用を行っています。


  • 日頃勉強している成果を、AWSHadoop、Storm、NoSQL、Elasticsearch、SpringBoot、HTML5/CSS3/JavaScriptといった最新の技術を使ったプロジェクトで発揮したい。
  • 社会貢献性の高いプロジェクトに提案からリリースまで携わりたい。
  • 書籍・雑誌等の執筆や対外的な勉強会の開催を通した技術の発信や、社内勉強会での技術情報共有により、技術的に成長したい。
  • OSSの開発に携わりたい。

 
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。
 
データ分析で国内に新規市場を生み出す新サービス開発者WANTED! - Acroquest Technology株式会社の新卒・インターンシップ - Wantedlywww.wantedly.com

Elasticsearchハンズオンを実施しました。 #elastichandson

こんにちは、fujiiです。

そろそろ花粉の季節ですね。
まだ寒さが残っているにも関わらず、すっかりマスクが手放せなくなってきました。


f:id:acro-engineer:20160307110306j:plain:w480

さて、話は変わりまして、
3/4(金)に、Elasticsearchハンズオンセミナー(無料)を実施しました。


Elasticsearchを触ったことがない人が半分以上参加しましたが、
Elasticsearch、Logstash、Kibanaを利用して、
Kibana上で集めたログデータを可視化し、分析を行ってもらいました。

f:id:acro-engineer:20160304171301j:plain:w480


参加者からは、

「無料で申し訳なくなるくらい素晴らしかったです。周りに宣伝します。」
「予備知識が無い状態で参加しましたが、とても充実で大変勉強になりました。」

というありがたい声もいただき、開催してよかったと思います。


セミナーでは、Elastic Stackを利用した、データ分析の初歩的な説明だけでなく、
Elasticsearchの導入事例の紹介や、最新情報の紹介も行っております。


今後も続けていく予定ですので、興味がある方は、以下からお申込みください。


Elasticsearchハンズオンセミナー| Acroquest Technology Co., Ltd



たくさんのご参加をお待ちしております。


よろしくお願いいたします。

Acroquest Technologyでは、キャリア採用を行っています。


  • 日頃勉強している成果を、AWSHadoop、Storm、NoSQL、Elasticsearch、SpringBoot、HTML5/CSS3/JavaScriptといった最新の技術を使ったプロジェクトで発揮したい。
  • 社会貢献性の高いプロジェクトに提案からリリースまで携わりたい。
  • 書籍・雑誌等の執筆や対外的な勉強会の開催を通した技術の発信や、社内勉強会での技術情報共有により、技術的に成長したい。
  • OSSの開発に携わりたい。

 
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。
 
データ分析で国内に新規市場を生み出す新サービス開発者WANTED! - Acroquest Technology株式会社の新卒・インターンシップ - Wantedlywww.wantedly.com

性能改善10事例

こんにちは、 @ です。

Acroquestでは、Elastic{ON}のような勉強会やカンファレンスに参加するだけでなく、社内向けの勉強会も開催しています。
新しい技術を調べて「使ってみた」的な発表をしたり、実際に開発の中で得られた知見を発表したり。
各自が得意分野で、様々なテーマで発表し、技術の研鑽を行っています。

私の場合、しばらく性能改善に取り組んでいたため、
その際に解決した問題からいくつか事例をフィードバックし、
性能問題を起こさないよう喚起しました。

www.slideshare.net

スライドでも書きましたが、特に大量に繰り返し実行される処理では、性能を意識した実装をしないと問題になりがちです。
問題があちこちに散らばると性能が大きく劣化し、解決も骨が折れます。
こういう問題は起こさないように、各チームメンバが気を付けて実装する必要があります。

ただ、もし、起きてしまった場合は、ENdoSnipeで解決するのがオススメです^^
www.endosnipe.com


それと、性能問題は解決が難しいケースもあります。
自力で解決できない場合は、JaTSサービスも是非ご利用ください!
jats.acroquest.co.jp

Acroquest Technologyでは、キャリア採用を行っています。


  • 日頃勉強している成果を、AWSHadoop、Storm、NoSQL、Elasticsearch、SpringBoot、HTML5/CSS3/JavaScriptといった最新の技術を使ったプロジェクトで発揮したい。
  • 社会貢献性の高いプロジェクトに提案からリリースまで携わりたい。
  • 書籍・雑誌等の執筆や対外的な勉強会の開催を通した技術の発信や、社内勉強会での技術情報共有により、技術的に成長したい。
  • OSSの開発に携わりたい。

 
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。
 
データ分析で国内に新規市場を生み出す新サービス開発者WANTED! - Acroquest Technology株式会社の新卒・インターンシップ - Wantedlywww.wantedly.com

Elastic{ON} 2016レポート いよいよクロージング! #elasticon

最終日の今日は、朝食もランチも特別なものでした。
会場の外に何台かのバンが来ていて、それぞれのバンで、サンドイッチ、ピザ、ブリトー、ワッフル、ドーナツ、クレープなどを提供されていました。そこから自分で好きなものを(もちろん無料で)頼むのです。
f:id:acro-engineer:20160220190800j:plain:w480


しかも、美味しいんですよね。
というかelstic{ON}で提供される食事はだいたい美味しいんです。

同じサンフランシスコで開催される、僕がよく行くあのJavaイベントとは天と地の開きがありました。

f:id:acro-engineer:20160220190924j:plain:w480


要するに、Elastic{ON}最高です。

How to Build Your Own Kibana Plug-ins

さて、今日参加したセッションの1本は、Kibanaプラグインの作り方。
Kibanaプラグインの開発に使うツールや情報などは、次のURLからアクセスすることができます。

Some resources that are helpful for creating kibana plugins · GitHub



boilerplateはハックを作る時に使えるひな形です。
Kibanaの全画面に対して、ホットキーを設定したり、見た目を少し修正するなどの加工ができます。

こんな感じのindex.jsが提供されています。

export default function (kibana) {
  return new kibana.Plugin({
    uiExports: {
      hacks: [
        'plugins/my_plugin/hack'
      ]
    }
  });
}

どうやらuiExportsのhacksというのが、全画面に対するハックを行うもののようですね。


またgenerator-kibana-pluginは、Yeomanを使ったKibanaプラグインのGeneratorです。
https://github.com/elastic/generator-kibana-plugin

これを使うとSenseやTimelionのような、Kibanaプラットフォームを利用した独自アプリのひな形を生成することができます。

index.jsはこんな雰囲気です。

var exampleRoute = require('./server/routes/example');
module.exports = function (kibana) {
  return new kibana.Plugin({

    name: 'ceroplugin',
    require: ['kibana', 'elasticsearch'],
    uiExports: {
      app: {
        title: 'Ceroplugin',
        description: 'Cero-t's Kibana plugin',
        main: 'plugins/myplugin/app'
      }
    },
// (以下略)

uiExportsのappを使うことで、アプリを作ることができるようです。
Kibanaのプラグインとハックとアプリの区別がよく分からなかったのですが、この辺りを見てようやく分かりました。


なお、Kibanaプラグイン(ハック、アプリ)のフレームワークやテンプレートなどは、今後も変更されやすい点には注意が必要です。
ただ、generator-kibana-pluginは、元々は開発者個人が作ったツールでしたが、
現在はelasticの公式Githubリポジトリに移動され、バージョンも1.0.1となっています。
(セッションを聞いていた時点では1.0.0だったのですが)

そのような状況を見ていると、そろそろプラグイン開発を始めても大丈夫なのかな、という気になりますね。

B-b-b-b-b-beats! How to Build Your Own

Beatsの作り方のセッション。
キャパが30〜40名ぐらいの小さなブースで行われたのですが、立ち見が続出、入れずに諦める人が多数という、大人気セッションでした。
f:id:acro-engineer:20160220191025j:plain:w480

僕自身、Beatsを作ったことがあるということを事前にスピーカーの人と話していたため、「最前列の彼はBeatsを作ったことがあるんだ」など簡単に紹介される嬉しいサプライズもありました。


さて、Beatsの作り方は、基本的にGeneratorを使うのが良いです。
https://github.com/elastic/beat-generator

beat-generatorはcookiecutterというテンプレートツールを使っているので、先にインストールしておく必要があります。
Generatorを起動して、ウィザードに従って名前などを決めれば、設定ファイルやGolangソースのひな形などが生成されます。

以前、beatの作り方をこのブログにも書きましたが、その時にはGeneratorは存在していませんでした。なのでいずれ改めて、作り方の紹介エントリーを書きたいと思います。とっても簡単ですよ。


なおセッション中には、beatの出力先として、Elasticsearch、Logstashに加えて、RedisとKafkaに対応することも紹介されました。この辺りの出力先も、徐々に増えていきそうですね。

そして、クロージングキーノート。

嵐のような3日間は、最後のクロージングキーノートをもって閉幕です。

クロージングキーノートは、elasticのCTOであるShay Banonと、CiscoのCTOであるLew Tuckerのパネルディスカッションや、
会場からの質問に答えるという形で進みました。
f:id:acro-engineer:20160220191149j:plain:w480


OSS企業のあり方や、ビジネスモデルの考え方、またMicroserviceの捉え方などに話は広がりました。
また会場からの質問では、CTOになったけどプログラミングしたくならないかとか、
5年後のElasticsearchの姿はどうなっているのか、など、割と自由奔放な質問が飛びだしていました。
っていうか正味、ちゃんと聞き取れるわけないじゃないですか!!

特にElasticsearchのメインターゲットとなっている「Splunk」に対してどう考えているのかという質問では、
単にSplunk対抗のものを作っているわけではないし、
もし対抗するなら必要なものをリストアップして一つずつ実装していくけど、そのような事はしていないと明言していました。

あくまでも、Elasticsearchを中核として使いやすいものを作るということに注力しているとのことでした。


そんな形でクロージングキーノートも絞まり、いよいよElastic{ON}は閉幕です。
f:id:acro-engineer:20160220191311j:plain:w480


ところで、
Elastic{ON}の来場者の出身地ですが、当然トップの2つはアメリカとカナダ、それを追ってイギリスとドイツ。そして5位はどこでしょう? という質問が投げかけられたのですが・・・もしかして、、、と思ったら、やはり「日本」でした。

昨年はスタッフ以外の来場者が1人もいなかった日本ですが、今年は日本からの来場者がたくさんいます。
もちろんこれは、須田さんをはじめとした日本のelasticスタッフの貢献があってこそだと思います。


Elastic{ON}のサプライズを含むテクニカルな発表や、AMAのような納得度の高いコンテンツ、
また美味しい食事、そして美味しい食事など、とっても良いイベントでした。

僕自身、来年も参加したいと思いますし、またこのブログを読んで一人でも参加したいと思った方がいらっしゃれば、
夜な夜なブログを書いた意義もあったのかなと思います。

elasticの社員、Elastic{ON}のスタッフはじめ、参加者も含めてイベント関わった皆さん、お疲れ様でした&ありがとうございました!!

Stay elastic, see you!

Elastic{ON} 2016レポート AMA = Ask Me Anything! #elasticon

いよいよElastic{ON}も3日目、最終日を迎えました。

今日はライブコーディング中心のプラグイン開発セッションや、
AMA (Ask Me Anything) と呼ばれる自由にQ&Aができるブースで1日を過ごしました。

まずはこのAMAについてレポートしたいと思います。

AMA = Ask Me Anything

もしかすると、AMAこそがElastic{ON}の一番の目玉なのかも知れません。
会場にたくさん来ているelastic社のエンジニアに、直接、様々な質問ができるというブースです。
f:id:acro-engineer:20160220185359p:plain:w575

Elasticスタックのプロダクトやロードマップについて質問するのはもちろんのこと、
最近困っている不具合を目の前で見せて解決を依頼したり、
Elasticsearchを利用した独自プロダクトのアーキテクチャの相談をしたり、
とにかく何でも自由に質問できます。

サブスクリプションを買ったりコンサル費用を払うよりも、
Elastic{ON}で直接聞いたほうが安い(笑)と言われるぐらいにオススメの高いコンテンツのようです。

ここで聞いたことを、簡単に紹介します。

1. Timelionのグラフを、Kibanaダッシュボードに載せられるようになるぞ

Timelionを使い込んでいる皆様方におかれましては、TimelionのグラフをKibanaのダッシュボードに配置できないものかなと思っているかと思います。
その点をKibanaの開発者であるRashid Khan(@)に聞いたところ、「近々対応するつもり、今週もそれを作ってるんだ」と回答してくれました。
わーい。

2. Beatsの設定や管理も、中央集約されるぞ

今回のElastic{ON}の中で、Logstash 5.0になれば、Logstashの設定やステータス情報を個別に扱うのではなく、
Elasticsearchに集約する(そして各Beatsに配信する)ということが明言されていました。

しかしBeatsでは、そのような設定やステータスの中央集約は明言されていませんでした。

その辺りどうなのよと、Beatsの開発者であるMonica Sarbu(@)に聞いたところ、
まだその開発をスタートしてないけど、対応する計画をしているとのことでした。
5.0には間に合わないけど、バージョン5.1ぐらいの時点で提供したいとのことです。
わーい。

3. Kafkaが入った時のアーキテクチャは?

BeatsシリーズからKafkaに出力できるようになることは、以前のエントリーにも書いた通りです。
また、Elasticsearch 5.0のIngest Nodeを使えば、Logstashの加工の機能が必要なくなることも、前に書きました。

現在の構成では、たとえばFilebeatを使って、Kafkaを挟むと次のような形になります。

Filebeat → Logstash(加工) → Kafka(キュー) → Logstash(転送) → Elasticsearch(保存)

これが、BeatsのKafka連携機能と、ElasticsearchのIngest Nodeを使うと、このような構成にできます。

Filebeat → Kafka(キュー) → Logstash(転送) → Elasticsearch(加工、保存)

ただこうなると、Logstashが何のために存在するのか分からなくなるので、削りたくなります。

Filebeat → Kafka(キュー) → Elasticsearch(加工、保存)

こんなことができるのか、Monica Sarbuにぶつけてみました。


まず結論としては、できない。
やはりKafkaからElasticsearchに直接転送するような方法が用意されていないため、転送のためにLogstashを挟むことは必須のようです。

また、ElasticsearchのIngest Nodeで加工することは確かに可能だが、
より細かい制御が必要になる場合は、Logstashを使う必要があるんじゃないかという見解でした。
なるほどですね。

いずれにせよ、この件はしっかりと話ができたので、僕の中でも腑に落ちた感じになりました。


それ以外にも、JMX経由で取った情報をBeatsと連携させるパターンの相談や、
実際に業務上で困っていることなど、ちょっとここでは書けないようなことも色々と質問、相談させてもらいました。

それにしても、いつもは壇上や動画、あるいはツイッターの向こう側にいるエンジニアの方たちと、
マンツーマンでディスカッションできる機会というのは本当に貴重ですよね。

つたない英語でも一生懸命に聞いてくださいますし、とっても捗りました!

Elastic{ON} 2016レポート Ingest Node: Enriching Documents within Elasticsearch #elasticon

Elasticsearch 5.0の目玉機能の一つである、Ingest Nodeのセッションに参加しました。
Ingest Nodeとは、Logstashが持つ加工機能をElasticsearchに移植したものです。
f:id:acro-engineer:20160219104038j:plain:w480

セッションは少し小さめの部屋で行われたのですが、立ち見まで出る満席っぷり。
かなり注目の機能ですし、実際、インパクトのあるデモも見られました。今日イチのセッションですね。

ユースケースは2種類

Ingest Nodeのユースケースとして2種類紹介されました。

  1. FilebeatからLogstash経由せずに、直接Elasticsearchにデータを送り込む
  2. Reindex APIと組み合わせて使う

f:id:acro-engineer:20160219104225j:plain:w400

前者は、これまでFilebeat(転送) → Logstash(加工) → Elasticsearch(保存)としていたところを、
Filebeat(転送) → Elasticsearch(加工&保存)とできるようなる、というパターンです。
また後者は、Elasticsearchに投入済みのデータを取り出しながら加工し、別のindexに投入するというパターンです。

いずれもありそうなシチュエーションですね。

なおElasticsearch 5.0では、デフォルトでIngest Nodeが有効になるように設定されているとのことです。

パイプラインの作り方

Ingest Nodeで行われる個別の処理はプロセッサと呼ばれ、それらを組み合わせたものをパイプラインと呼びます。
パイプラインの作成、更新、取得、削除はREST API経由で行います。

PUT _ingest/pipeline/pipeline-name
GET _ingest/pipeline/pipeline-name
GET _ingest/pipeline/*
DELETE _ingest/pipeline/pipeline-name

PUTするJSONはこんな感じ。

{
  "description": "mysql pipeline",
  "processors": [
    {
	  "grok": {
	    "field": "message",
		"pattern": "..."
	  }
	},
	{
	  "remove": {
	    "field": "message"
	  }
	}
  ]
}

Logstashの設定は独自の文法で行うものでしたが、Ingest Nodeのパイプラインは普通にJSONで記述するようですね。


このパイプライン用に利用できるプロセッサは、mutate、grok、geoipなど、LogstashにあるFilterはだいたいあります。
f:id:acro-engineer:20160219104702j:plain:w400

というかむしろIngest NodeのプロセッサはLogstashのFilterと相互に互換性があるそうです。こういうものって得てして別物になりがちなので、これは嬉しいところですね。


エラーが発生した時の処理は、プロセッサの on_failure で記述できます。
次のJSONは、bytesという名前のフィールドを数値(integer)に変換し損ねた場合には、値を0にするという例です。

{
  "convert": {
    "field": "bytes",
	"type": "integer",
	"on_failure": [
	  {
	    "set": {
		  "field": "bytes",
		  "value": 0
		}
	  }
	]
  }
}

なるほど、違和感ないですね。


またテストのためにSimulate APIが用意されており、実際にindexを行わずに、ドキュメントを試しに投入するテストを行えます。
最初からこういうものが用意されているのは、ありがたいところ。

Simulate APIは、こんな形をしています。

POST _ingest/pipeline/pipeline-name/_simulate
POST _ingest/pipeline/_simulate
POST _ingest/pipeline/_simulate?verbose

verboseオプションをつけることで、最終的な結果だけでなく、パイプラインの途中の処理結果を確認することができるようになります。

パフォーマンスは?

パフォーマンスは、平たく言えば、いつものマジックワード「depends on」です。プロセッサの内容、プロセッサの数、追加/削除するフィールドの数、などなど。
ベンチマーク結果も示されていましたが、あまりピンと来ませんでした。
f:id:acro-engineer:20160219105747j:plain:w400


ただどうあれ、このような加工処理がindexに影響を与えることは間違いありません。それでパフォーマンス問題が起きるようなことを想定して、
通常のノードとは別に、Ingest専用のノード(dedicated ingest nodes)を作るというパターンも紹介されていました。
f:id:acro-engineer:20160219105927j:plain:w400
masterノードからingest nodeに行って来いする形ですね。

デモがやばい。

パイプラインを実際に作成するデモも行われました。って、このデモが想像以上でした。

Elasticsearch 5.0 + Kibana 4.4の組み合わせでしょうか、Kibana上のindicesのsettingsに「Tail a File」というオプションが追加されており、
ここからパイプラインを作成したり、ファイルを流し込んだりできるようでした。


デモでは、実際にTail a Fileが行われました。まずはテキストエリアに、読み込み対象となるファイルのサンプルを適当に貼り付けます。
f:id:acro-engineer:20160219110314j:plain:w480


そうすると、パイプラインの処理結果としてどういうJSONが得られるかというサンプルが表示されます。
この例ではまだ何のプロセッサも設定していないため message というフィールドに、貼り付けたログの1行が表示されるだけになっています。
f:id:acro-engineer:20160219110153j:plain:w480


その後、プロセッサを追加してパターンなどを設定すると、どんどんOutputの形が変わっていきます。
この写真の例では(すごく見えにくいですが)最終結果のOutputが、source、message、contentの3フィールドが出力されることや、プロセッサの結果として、sourceとcontentが取得できることが分かります。
f:id:acro-engineer:20160219110127j:plain:w480


実際にファイルのサンプルを使いながら、トライ&エラーで設定を変更できるのは、本当にありがたい機能です。Logstashにはこの機能がないために、
ちょっと修正してはLogstashプロセスを再起動して、試しにデータを流し込んでみて、また修正してはプロセスを再起動して・・・という作業を繰り返さざるを得ませんでした。
(Logstash 5.0では設定が自動でリロードされるようになり、少しは楽になりますけども)

このパイプラインの作成の手軽さを考えると、もうLogstashなんて使っていられないな・・・と思うほどです。

まとめと、今後?

という感じで、Ingest Nodeをとても使いたくなるセッションでした。むしろこれから先、Logstashがどういう位置づけになるのか、微妙だと思います。
まず、小さな規模であれば、Logstashを完全に省いて、Filebeat(や他のBeats)とElasticsearchだけで運用することができるようになるのは間違いないでしょう。

問題は、規模が大きくなってきた時。今の標準的な構成としてはKafkaを挟んだ形になります。

Filebeat → Logstash(加工) → Kafka(キュー) → Logstash(転送) → Elasticsearch(保存)
※それとは別に、Kafka or Logstash からファイルサーバに転送


これが、FilebeatがKafka出力に対応し、ElasticsearchがIngest Nodeを持つことになると、こうなります?

Filebeat → Kafka(キュー) → Logstash(転送) → Elasticsearch(加工&保存)
※それとは別に、Kafka or Logstash からファイルサーバに転送

Logstashは転送の役割だけで、むしろKafkaからElasticsearchが直接繋がれば、Logstashは完全に要らなくなるのに・・・と思ってしまいます。
この辺りがどうなるのか、今後の動向も含めて数ヶ月ぐらいはウォッチしたいと思います。


いやー、Ingest Node、便利ですよ!

Elastic{ON} 2016レポート My own google? FaceChimpを見せてもらいました。 #elasticon

お昼前に、Elasticの方から興味深いデモを見せてもらいました。
FaceChimpという検索エンジン系のKibanaアプリです。
f:id:acro-engineer:20160219084134p:plain:w480


KibanaのFaceChimpアプリで、検索対象のindex(複数指定可能)や、検索対象のフィールド、
検索結果に表示するフィールドなどを選択すると、GoogleライクなUIを生成できるというものです。
f:id:acro-engineer:20160219084214p:plain:w480


通常のキーワード検索に加えて、画像検索や地図検索での結果も表示できます。
また、キーワードのサジェストもあれば、Did you mean? 機能もあります。
f:id:acro-engineer:20160219084200p:plain:w480


簡単ですが、アクセス統計などが見られるダッシュボードも用意されています。
f:id:acro-engineer:20160219084244p:plain:w480


Elasticsearchって検索のバックエンドのエンジンとして利用できるのですが、検索用のUIは(Sense以外には)用意されていませんでした。
そこにFaceChimpを使うことで、検索用のUIも提供できるようになったということですね。
これで完全にSolrの息の根が止まりますよね

FaceChimpはまだ公開されていませんが、いずれTimelionなどと同じくオープンソースで提供される模様です。なかなか助かりそうに思うので、こちらもいち早く使ってみたいですね。