先日行われた初心者詐欺が横行していたelasticsearch勉強会に参加したのでそのメモを残しておきます。
ESは内部的にはLuceneを使っており、競合するプロダクトはSolrです。良くAWSのサービスと勘違いするようですが、AWSは関係なくオープンソースの製品です。(私もそう思っていた時期がありました。)
そういえば、隣に座っていたのTwitter4Jの山本さんだったんですね。気がつかなかった(;´Д`)
スライドはこちらにまとまっています。
雑感
雑感としては、SolrとESの使い分けが何となく自分の中で明確になりました。
Solrはスキーマきっちり、設計きっちりやりたい場合に使って、ESはデータ量が破滅的に増加的で柔軟なスキーマが欲しくてスケールをポンッとできる場合に使おうかなと思います。話を聞いた限りでは、がちがちなPluginを書く場合はSolrのが書きやすいなと思いました。SolrのPluginはそこそこ書きましたが、それなりに分かりやすかったです。
検索エンジンの入門から始まり、プラグインの書き方、デバッグの仕方、実際に使ってみた報告と発表が続いて、ES初心者の自分にはとても分かりやすい構成と話でした。
ESのここが良いなと思った点
- Solrよりもスケールさせる時が楽そうなイメージ(あくまでイメージです)
- 帯域制限ができる(Solrはレプリケーション時の帯域とCPU/IOを全力で使おうとするので、大概の場合ここでハマる人多いと思う)
- ペンギンマンのスライドで、インデキシングの性能が173K/sという驚異的な数字をたたき出していること
- 起動時にマルチキャスト通信をして自動でクラスタに組み込んでくれる点
ESでここが嫌だなぁーと思った点
- 値から型を推測してスキーマを決める点
-
- それ自体は別に良いんだけど、strict-modeで動作するオプションが欲しい
- Pluginのパッケージ名を勝手に変更される点
- Pluginの更新は再起動が必要(Javaなら比較的簡単にクラスのReload処理が書けるので将来対応しないかなー・・)
その他
ES + Kibana のデモを見ると、「もっと早くこれがあれば、あのツールとか、このツールとか、もっと良くできたのに・・」とか浮かんできて楽しそう。