Elasticsearch(エラスティックサーチ)とは、全文検索エンジンです。マルチテナント、スキーマレスでクラウドに最適化されています。

オープンソースの検索エンジン/Elasticsearchとは

Elasticsearch(エラスティックサーチ)とは、全文検索エンジンです。マルチテナント、スキーマレスでクラウドに最適化されています。

目次

「Elasticsearch」基本情報
■概要
■基本説明
■動作環境
■経緯
■ユースケース
・データ検索
・サーバログ解析
・ビッグデータ

Elastic Stackプロダクト
■「Elastic Stack」とは
■データ可視化「Kibana」
■データ収集/転送「Beats」
■ログ収集管理「Logstash」

主な特徴
■スキーマレス
■全文検索
■高速検索処理
■多様なクエリに対応
■マルチテナント
■可用性(分散構成)
■スケーラビリティ
■オープンコントロール
■多くのプログラミング言語対応
・API
・Elastic公式クライアントライブラリ
・コミュニティクライアントライブラリ
■プラグイン

主な機能
■Hadoop連携コネクタ「Elasticsearch-Hadoop(ES-Hadoop)」
■SQL検索機能「Elasticsearch SQL」
・Query DSL

補足情報
■同様製品
■オフィシャルサイト
・オフィシャルサイト
・ライセンス情報
・ダウンロード
・導入事例

「Elasticsearch」基本情報

■概要

Elasticsearch(エラスティックサーチ)とは、全文検索エンジンです。マルチテナント、スキーマレスでクラウドに最適化されています。

■基本説明

Elasticsearchは、Elastic社が提供しているオープンソースの全文検索エンジンです。

HTTP WebインターフェイスとスキーマフリーのJSONドキュメントを備えており、さまざまなユースケースに対応できる分散型RESTful検索が可能です。スケーラビリティに優れたマルチテナント対応のフルテキスト検索エンジン機能を提供します。

Elasticsearchは、特に、検索速度や分析柔軟性に優れています。強力な検索機能をシンプルに利用でき、データ蓄積/分析/可視化環境を容易に構築できます。

■動作環境

Elasticsearchは「Linux」「Windows」「macOS」などに対応しています。

■経緯

・2010年 初版リリース

Elasticsearchは、「ユーザーが、もっと簡単に、本当に欲しいものを検索できるように」というコンセプトで開発されています。

■ユースケース

Elasticsearchを利用すると、大容量のデータから必要なデータを素早くに取り出すことができ、「リアルタイムデータ分析」「ログ解析」「全文検索」などさまざまな用途で利用できます。

データ検索

膨大なプロダクトリストから特定のキーワードに合致するプロダクトを検索するなどの用途に利用できます。

サーバログ解析

Webサーバのログから、ユーザーのページ閲覧情報を収集して、ユーザーアクション分析に利用できます。

ビッグデータ

大規模な全文検索を高速に実行できるため、ビッグデータを扱うシステムも構築できます。

Elastic Stackプロダクト

■「Elastic Stack」とは

「Elastic Stack」とは、Elastic社が提供するソフトウェア群で、データの収集/加工/集計/分析を行うための機能を備えています。以前は「ELK」という名称でしたが、バージョン5から「Elastic Stack」に改名されています。

Elasticsearchは「Elastic Stack」の中心的プロダクトで、他の「Elastic Stack」プロダクトと連携することで、「データ可視化機能」「セキュリティ機能」「監視機能」「アラート機能」「レポート機能」「グラフ探索機能」「機械学習機能」などを含む高機能なソリューションとして利用できます。

→Elastic →Elastic Stack

■データ可視化「Kibana」

Kibanaは、データ解析/可視化ツールで、Elasticsearchと連携して使用するように設計されています。

時間軸分析に強みがあり、分かりやすいグラフィカル表示を行えます。

→OSSxCloud News →オープンソースのBIツール/Kibanaとは

■データ収集/転送「Beats」

Beatsとはデータ収集/転送プラットフォームです。

サーバからあらゆる種類のオペレーショナルデータを収集して、Elasticsearch/Logstashなどに情報を転送します。

→OSSxCloud News →オープンソースの運用管理・運用自動化/Beatsとは

■ログ収集管理「Logstash」

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でモニタリングや管理できます。

■多くのプログラミング言語対応

API

データの登録や検索は、Elasticsearchが提供する「Restful API」を通して実行します。

Elasticが開発/保守するクライアントライブラリが「Java」「Python」「PHP」などの言語で用意されています。また、コミュニティによるクライアントも利用できます。

Elastic公式クライアントライブラリ

・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(ES-Hadoop)」

Hadoop連携コネクタ「Elasticsearch-Hadoop」を利用すると、Hadoopのパワフルな処理能力をElasticsearchに接続できます。

ビッグデータからすばやくインサイトを取得することが可能となり、Hadoopエコシステムでさらに効率よく作業できます。

Hadoopと連携した「ビッグデータリアルタイム検索」「テキストデータのエンリッチメント」「データ整形処理」などが容易に行えます。

→Elastic →Elasticsearch-Hadoop

■SQL検索機能「Elasticsearch SQL」

「Elasticsearch SQL」を使用すると、SQLで全文検索を実行できます。

使い慣れたクエリ構文を活用して効率的な検索を実施できます。

→Elastic →Elastic Stack →Elasticsearch SQL

Query DSL

Elasticsearchは、JSONベースで拡張性に優れたクエリ構文「Query DSL(Domain Specific Language)」を提供しています。

Elasticsearch SQLは「Query DSL変換機能」を備えており、SQL構文をQuery DSLで表示します。

Query DSLを使用することで、さらに効率的なクエリを作成できます。

→Elasticsearch →Docs →Query DSL

補足情報

■同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Fess」「Groonga」など。

■オフィシャルサイト

オフィシャルサイト

→Elastic →Elasticsearch

ライセンス情報

Elasticsearchのライセンスは「Apache License Version 2.0」です。

詳細について、こちらを参照ください。
→GitHub →elastic →elasticsearch →LICENSE.txt

ダウンロード

→Elastic →Elasticsearch →Download Elasticsearch

導入事例

→Elastic →ユーザーストーリー

 

参考元サイト

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

Elasticsearch最新TOPICS

【OSS】Elastic社イベント、ElasticOSSプロダクト群「Elastic Stack 6.x」を紹介---「Elasticsearch」「Logstash」「Kibana」「Beats」(2017年12月17日 20:03)

Elasticは、12月14日、プライベートイベント「Elastic{ON}Tour」を都内で開催し、 ElasticOSSプロダクト群「Elastic Stack 6.x」に関する紹介などを行った。 【「Elastic Stack」とは】 Elastic社のオープンソースツール群の総称。 「Elasticsearch」「Logstash」「Kibana」「Beats」を含む。

  • オープソース書籍(サイド)
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter