ElastciSearchについて
Elastic Searchは、以前述べたFESSのバックグラウンドでも使われているツールであり、Elasticsearch社により、open-coreビジネスモデルで展開されている全文検索エンジンとなる。下図に示すように、全文検索やクラスタリング等の基本機能(Apache Luceneをベースとした超高速分散処理型検索)はApacheライセンスのオープンソースプログラムとなる。
検索モジュールであるElasticsearchは、データ収集モジュールであるLogstash、データの見える化ツールであるKibana、軽量のデータシッパーであるbeats等のElastic Stackと呼ばれるコアプロダクト群をJSONベースのRestfulな通信モジュールでつなげてシステムを組むことが可能で、検索だけでなく、収集、分析、可視化の処理を行うことができる。
本ブログでは以下の項目について述べる。
- 検索ツールFESS Elastic SearchベースとしたオールインワンのOSS
- Elastic Searchについて (本稿)
- 検索ツールElastic Search(1) 参考図書紹介
- 検索ツールElastic Search(2) ElasticSearchの立ち上げ
- 検索ツールElastic Search(3) UI(reactivesearchとの連携:基本)
- 検索ツールElastic Search(4) UI(reactivesearchとの連携:応用)
以下にElastic Seachの概要について「Elastic Search in Action」をベースに述べる。
Elastic search はbackendシステムであり、以下のようにweb apiを介してデータをやり取りする
内部のデータは以下のようにJsonで表され
以下のようなjson形態のクエリでデータを検索する
内部のデータ処理のしくみとしては、入力データをanalyzerで解析してindex化し、queryも同様にanalyzerで解析してmatchingを行う。一般的なデータベースのqueryと異なる点はデータをインデックス化することで高速の検索ができることにある。
実際の使い方としては、機械学習等の処理でindex applicationを作り、任意のindexを挿入して検索するものとなる。
実際には複雑なインデックスを組み合わせることで、様々な検索ソリューションを実現できる。
また、Elastic Stashはログ収集PFとしても広く活用されている。それらの詳細は!マイクロサービスを含めたシステム運用監視の為のElasticStashの活用”にて詳しく述べる。
コメント
[…] 前述のelasticsearch用のUIライブラリの導入は、npmを使って「npm install Package名」で導入できる。 […]
[…] elasticsearch等の検索エンジンの中では、一旦形態素解析等で分かち書きした後にn-gramを組み合わせる等の使い方がよく使われるパターンとなる。elastcisearchではアナライザ・トークナイザの設定でNGram Tokenizerを設定することで利用することができる。 […]
[…] Elastic Searchについて 概要 […]
[…] 化などのタスクを効率的に実行するためのツールとなる(詳細は”エラスティックサーチ(Elastic Search)について 概要“等を最小のこと)。以下に、Elasticsearchを実装するための具体的 […]