📔
Elasticsearchって何?
はじめに
普段Elasticsearchを利用していますが、これは何?って聞かれてすぐに答えられなかったので、概要を調べて整理してみることにしました。
まとめ
- Elasticsearchとは、分散処理が可能な検索・分析エンジンである
- documentという単位でデータを登録し、indexの単位でデータを検索できる。documentとindexを関連付けることができる
まとめてみたこと
Elasticsearchとは?
- Elasticsearchとは、分散処理が可能な検索・分析エンジンである
- ちなみに
- Apache Luceneをベースに開発されたプロダクトである
- Elactic社が提供するElastic Stackというプロダクト郡の中の一つである
どんな特徴があるのか
- スケーラブル
- 扱うデータ量やリクエスト量に応じてスケール
- リアルタイム
- ほぼリアルタイムに分析・検索が可能
- 開発者フレンドリー
- 高可用性
また、無料で利用できます。
なお、公式サイトの概要説明によれば、有償のオプションもあるとのことです。
有償のサブスクリプションをご購入いただくことにより、アラートや機械学習などの高度な機能をお使いいただけます。
ユースケース
- 先に上げた特徴により、大量のデータから効率よく検索する機能を実現できるため、こんなケースで利用されています
- アプリ検索
- Webサイト検索
- エンタープライズサーチ
- ロギングとログ分析
- インフラメトリックとコンテナー監視
- アプリケーションパフォーマンス監視(APM)
- 地理空間データ分析と可視化
- セキュリティ分析
- ビジネス分析
利用の流れ
- データの投入
- 各データソースから入ってくる生データをElasticsearchにindexする
- データの取得
- クエリの実行
- Kibanaを利用した可視化
documentについて
- Elasticsearchは、データをdocumentの単位で登録することができる
- documentはJSON形式であり、fieldとvalueを持つ
- field:キー
- value:値
- 各fieldには型を定義することができる
- 次のようなバリエーションがある:文字列、数値、ブール値、日付、数値アレイ、地理情報、ないしその他の種類のデータ
- 型の定義をmappingという。mappingが無いものは自動で型が設定される
indexとdocumentの関係
- indexにdocumentを登録する(indexする)ことができる
- 登録したdocumentは、様々な条件を付けて検索することができる。
- 実世界で例えてみると、documentの集まりが1冊の本で、indexがその本の索引である、と思った。
使い方
- Elasticsearchを起動して、REST API経由でCRUDを実行したり、インデックスに対する検索やフィルタリング、アグリゲーションなどが可能
- 利用方法の一つとして、Kibanaを利用してWebUI上からElasticsearchに対するリクエスト送信・レスポンス確認をすることができる、というものがある
参考
- Elasticsearchについて | Elastic https://www.elastic.co/jp/what-is/elasticsearch
- Elasticsearch 入門。その1 | DevelopersIO https://dev.classmethod.jp/articles/elasticsearch-starter-1/
Discussion