第6回Elasticsearch勉強会の資料を読む
Elasticsearch勉強会(Elastic Tokyo User Group) #elasticsearchjp というものがあり、今までに20回以上勉強会が開催されている。
Elasticsearch勉強会の資料をまとめてくださっているページがあったので、そこを参考に第1回から順番に資料を読んでいく。
資料を読む目的は
- 他の方のElasticsearchのまとめ方を知る
- Elasticsearchの活用事例を知る
- Elasticsearchを図解的に学ぶ
- もやもやしてる部分(プライマリシャードや分散システム)を解決したい
- Elasticsearchに詳しい人を知る
第6回Elasticsearch勉強会
Aggregationあれこれ/@johtani
Aggregationあれこれ // Speaker Deck
感想
- Aggregationは1.0から利用可能 Facetよりも強力な集計が可能 Facetは2.x系から非推奨
- Aggregationは大きく2種類 BucketとMetric
- Bucket…検索結果のドキュメントを指定した条件(バケツ)に分類
- Metric…Bucket内のドキュメントのデータをもとにいろいろ計算
- Aggregationの分類処理(Nodeから各シャードに分散させて、その結果をマージ)
- Aggregationは検索のクエリフェーズで実行
- post_filterとAggregation
- terms…インデックス(フィールド)の単語ごとにBucketを生成 結果は近似値
- significant terms 異常検知、レコメンドなどに利用
- statsはmin/max/sum/avgおよびcountを返す
- cardinality
- percentiles パーセンタイル計算
- top-hits ハイライト、Named Filter、Query、Source Filtering、Script Field
- Aggregationの資料の参考先
秒間3万の広告配信ログをElasticSearchでリアルタイム集計してきた戦いの記録/@satully
感想
- ディスプレイ広告配信システムのインフラ設計に何を使うか 柔軟なスケール・小さく始められスケールアウトが容易・リアルタイムとバッチでの両方の分析ができること→Elasticsearchを採用 Kibanaの存在が採用を後押し
- クラスタ構成
- シャード数をいくつにするか
- staging環境では構成の確認はできてもproduction環境でないと負荷チューニングができない
- Elasticcache
- プラグイン head, bigdesk,HQ
- Fluentd(td-agent)のパラメータをチューニング
- elasticsearch.ymlの設定値 デフォルトに近いパラメータで運用
- トラブルとその対応(クラスタの設定を確認・ノードをグレードアップ・ノードを手動で再配置・unassingnedのシャードをノードに割り振るなど)
Elasticsearch 日本語スキーマレス環境構築と、ついでに多言語対応/@9215
感想
- mapping定義めんどくさい
- 多言語対応は「デフォルトのアナライザー」を使う
- 正確に絞り込みたいときは、*.rawフィールド使う
- 検索漏れを少なくしたい場合は、*.substring使う
- dynamic templates…フィールド名のパターンや型の種類によってフィールドの定義をルール化する仕組み *index template…インデックス作成時に適用するルールを定義しておける仕組み
- index templateはconfig/templates配下に保存するだけでOK。ノードの再起動は必要なく、新規で作成したインデックスのみに適用される。
- インデックス作成→settings要素の適用→タイプの作成→mappings要素の適用→フィールドデータの追加→dynamic templatesの適用
- Siba | Elasticsearch as a Service | 検索BaaS/ASP | ナレッジワークス株式会社
elasticsearchソースコードを読みはじめてみた/@furandon_pig
感想
reroute APIを使用してシャード配置を制御する/@pisatoshi
感想
- Cluster Reroute API 利用者が明示的にシャードの割り当てを制御できる。実際問題、使い所が難しい。
- 自動再配置を抑止するにはtransientのcluster.routing,allocation.enableをnoneにする
- プラグイン elasticsearch-head
- Cluster 40nodes,1index
- Index 110shards,39replicas
- Bonsai
検索のダウンタイム0でバックアップからIndexをリストアする方法/@kbigwheel
検索のダウンタイム0でバックアップからindexをリストアする方法
感想
- Snapshot & Restore API は1.0以降Indexのバックアップが無停止で可能になった
- 今の検索は動作させつつバックグラウンドでリストア作業を行いたい
- Index Aliasesとリストア時のリネー ムを組み合わせて無停止で復元
- バージョン1.3.0からaliasなしでのリストアが可能になった