昨日は Elasticsearch をテーマに開催された CA.io に参加してきた.サイバーエージェントグループのマッチング系サービスが対象なのに,友情出演という形で,特別に LT をさせてもらった.楽しかった!
発表資料
タイトルは「Amazon ES に移行をしたら幸せになれるのか?」にした.最近そこそこ大規模で,レガシーな Elasticsearch を Amazon ES に移行するプロジェクトを担当して,そこで学んだことをザックリと話した.LT だと全然時間が足りなくて,ネタっぽくなってしまった感はある.
雰囲気
補足
自動スナップショット
Amazon ES のダメな点として「自動スナップショットをリストアする場合はサポートに依頼する必要がある」という話をしたら,LT 中に大谷さんから「数日前に改善されたよ!」と指摘をもらって,実際に調べたら本当にリリースが出ていた.ただし,Amazon ES (Elasticsearch 5.5) 以降で使えるらしく,Amazon ES (Elasticsearch 2.3) では,引き続きダメだった.知れて良かった!!!
運用面
今回は時間が無くて話さなかった Amazon ES の運用面の話は去年に作った資料にまとめてある.参考になればと!
Elasticsearch 6.0 is coming / @johtani
- Elastic Pioneer Program で Elastic 6.0 を使うと粗品がもらえる!
- Elastic 6.0 の特徴
- ダウンタイムなしで 5.x から 6.x にアップデートできる
- Upgrade Assistant
- ソートクエリのパフォーマンスが改善する (index sorting)
- 簡単に言うと,インデックスのときに順番を入れ替えてしまう
- Elastic 7.0 からインデックスの
_type
を削除するので,警告が出るようになる
メジャーバージョンが上がるたびに進化していて凄いなと思う.Elasticsearch SQL の話を懇親会で大谷さんに聞いたら,6.0 では入らなそうとのことだった.良し悪しはありそうだけど,SQL 形式で書けることのメリットはありそうなので,期待してる.
タップル誕生が Elasticsearch を導入した3つの理由
- MongoDB から Elasticsearch に移行した
- 複数の検索項目があり,柔軟に実装できる点がメリット
- 全文検索も現在実装中
位置情報を用いたElasticsearchの活用事例
- すれ違いを検索するときに Elasticsearch を使っている
geo_point
type でデータを格納しているgeo_distance
で検索をしている
- 逆 Geocoding (緯度経度から住所を検索する)
- 国土交通省のデータを Elasticsearch に入れている
- Geo Shape を使うと Elasticsearch で範囲の中に特定の場所があるかを検索できる
Elasticsearch 活用 & 運用事例
- mimi はマニアックな属性で検索ができるのが特徴
- 完全一致 (年齢,住所…)
- スコアマッチ (目/鼻/メガネ…)
- インデックス再構築
- エイリアスも reindex も採用しなかった
トルテが実践したマッチしたユーザーを除く3つの方法
- マッチしたユーザーを除外する
- Elastic Cloud と Amazon ES を検証した
まとめ
最近は July Tech Festa 2017 / CROSS 2017 など,発表が多くてバタバタしているけど,移行事例を話せて良かった.また他社の事例を聞いて,まだまだ Elasticsearch を活用できるなと感じることができたため,適材適所に技術選定をしていきたい.