Elasticsearch(エラスティックサーチ)とは、全文検索エンジンです。マルチテナント、スキーマレスでクラウドに最適化されています。
Elasticsearchは、Elastic社が提供しているオープンソースの全文検索エンジンです。
HTTP WebインターフェイスとスキーマフリーのJSONドキュメントを備えており、さまざまなユースケースに対応できる分散型RESTful検索が可能です。スケーラビリティに優れたマルチテナント対応のフルテキスト検索エンジン機能を提供します。
Elasticsearchは、特に、検索速度や分析柔軟性に優れています。強力な検索機能をシンプルに利用でき、データ蓄積/分析/可視化環境を容易に構築できます。
Elasticsearchは「Linux」「Windows」「macOS」などに対応しています。
・2010年 初版リリース
Elasticsearchは、「ユーザーが、もっと簡単に、本当に欲しいものを検索できるように」というコンセプトで開発されています。
Elasticsearchを利用すると、大容量のデータから必要なデータを素早くに取り出すことができ、「リアルタイムデータ分析」「ログ解析」「全文検索」などさまざまな用途で利用できます。
膨大なプロダクトリストから特定のキーワードに合致するプロダクトを検索するなどの用途に利用できます。
Webサーバのログから、ユーザーのページ閲覧情報を収集して、ユーザーアクション分析に利用できます。
大規模な全文検索を高速に実行できるため、ビッグデータを扱うシステムも構築できます。
「Elastic Stack」とは、Elastic社が提供するソフトウェア群で、データの収集/加工/集計/分析を行うための機能を備えています。以前は「ELK」という名称でしたが、バージョン5から「Elastic Stack」に改名されています。
Elasticsearchは「Elastic Stack」の中心的プロダクトで、他の「Elastic Stack」プロダクトと連携することで、「データ可視化機能」「セキュリティ機能」「監視機能」「アラート機能」「レポート機能」「グラフ探索機能」「機械学習機能」などを含む高機能なソリューションとして利用できます。
Kibanaは、データ解析/可視化ツールで、Elasticsearchと連携して使用するように設計されています。
時間軸分析に強みがあり、分かりやすいグラフィカル表示を行えます。
→OSSxCloud News →オープンソースのBIツール/Kibanaとは
Beatsとはデータ収集/転送プラットフォームです。
サーバからあらゆる種類のオペレーショナルデータを収集して、Elasticsearch/Logstashなどに情報を転送します。
→OSSxCloud News →オープンソースの運用管理・運用自動化/Beatsとは
Logstashは、ログ収集管理ツールで、サーバサイドデータ処理パイプラインとして、さまざまなデータソースからログを収集し、1つのサーバに集約する機能を提供します。
→OSSxCloud News →オープンソースのログ管理/Logstashとは
Elasticsearchは、事前のスキーマ定義(データマッピング)は行わずに、データ投入を開始できます。フィードしたフィールド値から自動的に型などが判別され、データ投入後にスキーマの調整や修正を行えます。
また、明示的にスキーマ定義を行うことも可能です。
全文検索エンジンとは、大量にあるドキュメントデータの中から、指定したキーワードを含むドキュメントデータを高速に検索するための仕組みです。
「検索条件との関係性/関連性が高いデータを抽出して返す」という特徴があります。
Elasticsearchは全文検索エンジンとして高い能力を発揮できます。
Elasticsearchは検索処理の高速性を特徴としています。
「全文検索のための有限状態トランスデューサを使用した転置インデックス」「数値データや地理データを格納するためのBKDツリー」「分析用カラムストア」などの技術により高速検索を実現しています。
高速検索が可能なことにより、「繰り返し検索」や「広範囲検索」などの実行が容易となるため、データ活用性をより向上できます。
Elasticsearchは、多様なデータタイプの検索に対応します。
・テキスト
・数値
・構造化データ
・非構造化データ
・地理情報
・メトリック など
Elasticsearchはマルチテナントをサポートしているため、柔軟に運用できます。
Elasticsearchは分散環境での安全な運用を考慮して設計されています。複数サーバを1つのクラスタとして構成できます。クラスタ構成が前提となっているため、マシン1台の場合でも1台構成のクラスタとして起動します。
Elastcisearchで扱うデータは、クラスタに所属する各サーバに分散して保存されます。Elasticsearchは障害を検知し、クラスタとデータを安全に保って運用を継続します。
クラスタを構成する1つのサーバが停止してしまった場合は、そのサーバを切り離した状態でサービスを継続できます。
また、データを複数サーバに分散配置する構成にしておくことで、データが失われる可能性を下げる冗長化システムを構築できます。
Elasticsearchは「数百台のクラスタ構成」や「ペタバイト級データ」にも対応でき、プロトタイプからプロダクションまでスムーズに移行できます。
システムを停止することなくElasticsearchサーバを追加して、システムを拡張できます。Elasticsearchマシンを追加すると、既存データの分散/レプリカなども自動で実行され、クラスタ全体に渡るインデックスとクエリの分散も自動的に調整されます。1つのノードで実行中でも、300ノードのクラスタで実行中でも、ハイパフォーマンスを維持したままアクセスできます。
導入時は最小構成でスタートして、データ量やアクセス量の増加に合わせてサーバを追加するようなシステム拡張が可能であるため、極めてスムーズな運用が実現します。
Elasticsearchはブラックボックスではなく、完全にビジブルでコントロール可能です。
直観的なAPIでモニタリングや管理できます。
データの登録や検索は、Elasticsearchが提供する「Restful API」を通して実行します。
Elasticが開発/保守するクライアントライブラリが「Java」「Python」「PHP」などの言語で用意されています。また、コミュニティによるクライアントも利用できます。
・Java
・C#
・Python
・JavaScript
・PHP
・Perl
・Ruby
・SQL など
→Elastic →Docs →Elasticsearch Clients
・C++
・Clojure
・Erlang
・Go言語
・Haskell
・kotlin
・Lua
・OCaml
・R言語
・Rust
・Scala
・Smalltalk など
→Elastic →Docs →Community Contributed Clients
プラグインでElasticsearch機能を強化でき、さまざまなプラグインが用意されています。
・カスタムマッピングタイプ
・カスタムアナライザ
・ネイティブスクリプト
・カスタムディスカバリ など
→Elastic →Docs →Elasticsearch Plugins and Integrations
Hadoop連携コネクタ「Elasticsearch-Hadoop」を利用すると、Hadoopのパワフルな処理能力をElasticsearchに接続できます。
ビッグデータからすばやくインサイトを取得することが可能となり、Hadoopエコシステムでさらに効率よく作業できます。
Hadoopと連携した「ビッグデータリアルタイム検索」「テキストデータのエンリッチメント」「データ整形処理」などが容易に行えます。
→Elastic →Elasticsearch-Hadoop
「Elasticsearch SQL」を使用すると、SQLで全文検索を実行できます。
使い慣れたクエリ構文を活用して効率的な検索を実施できます。
→Elastic →Elastic Stack →Elasticsearch SQL
Elasticsearchは、JSONベースで拡張性に優れたクエリ構文「Query DSL(Domain Specific Language)」を提供しています。
Elasticsearch SQLは「Query DSL変換機能」を備えており、SQL構文をQuery DSLで表示します。
Query DSLを使用することで、さらに効率的なクエリを作成できます。
→Elasticsearch →Docs →Query DSL
同様な機能を提供する製品として、次のようなものがあります。
オープンソース製品:「Fess」「Groonga」など。
Elasticsearchのライセンスは「Apache License Version 2.0」です。
詳細について、こちらを参照ください。
→GitHub →elastic →elasticsearch →LICENSE.txt
→Elastic →Elasticsearch →Download Elasticsearch
参考元サイト
Elasticは、12月14日、プライベートイベント「Elastic{ON}Tour」を都内で開催し、 ElasticOSSプロダクト群「Elastic Stack 6.x」に関する紹介などを行った。 【「Elastic Stack」とは】 Elastic社のオープンソースツール群の総称。 「Elasticsearch」「Logstash」「Kibana」「Beats」を含む。
OSS×Cloud ACCESS RANKING