Elasticsearch 特徴まとめ

Elasticsearch Features — 主にシステムを中心とした特徴まとめ

Kunihiko Kido
Hello! Elasticsearch.

--

以前から気になっていたElasticsearch、いつの間にか バージョンも1.0.1がリリースされていたので、そろそろ情報収集。まずは、パッケージに含まれるREADMEから。

Elasticsearch とは?

簡単に説明すると、クラウド向けに構築された、RESTful な API を提供する分散型のサーチエンジンアプリケーション。オープンソースで提供されています。

http://www.elasticsearch.org/

主な特徴は?

READMEから主な特徴を抜粋。

*分散処理システムと高可用性サーチエンジン

  • 各 Index は変更可能な数の Shard で完全に分割されている。
  • Shard は、1以上の Replica を持つことができる。
  • リード/検索処理は、Replica Shard のいずれかの一つで実行される。

*マルチテナントとマルチ Type

  • 1つ以上の Index をサポート
  • Index 毎に1つ以上の Type をサポート
  • Index レベルで、Shard の数、ストレージなどを配置

*いろいろなAPIセット

  • HTTP RESTful API
  • ネイティブ Java API
  • 全てのAPIは、自動ノード操作を再ルーティングする。

*ドキュメント指向

  • 事前にスキーマを定義する必要が無い。(※ 定義することもできる。日本語扱う場合は必ず定義する必要ありそうな感じもする。)
  • スキーマはインデックスプロセスのカスタマイズ設定を Type 毎に設定できる。(※ 処理する順番とか指定できるのだろうか?)

*信頼性の高い非同期 Wite-Behind

*(Near) リアルタイムサーチ

*Lucene 上に構築されている

  • 各 Shard は、完全に機能する Lucene のインデックス
  • Lucene の全てのパワーは、シンプルな設定とプラグインを通して簡単に公開可能。

*操作の一貫性

  • 単一のドキュメントレベルの操作はアトミック、一貫性、分離性、耐久性に優れている。(※よくわからない。。。)

*Apache 2 オープンソースライセンスで提供

なんとなくイメージ的には、物理的なインデックス管理をしている Shard と、論理的なインデックスの概念、Index、Type の特徴をよく理解して、設計・利用することが Elasticsearch のパワーを引き出す近道かなと言うのが感想?もう少し、概念的なもを図にして理解した方が良さそう。

--

--