1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Elasticsearch について調べてみた

Last updated at Posted at 2024-01-15

社内サービスの検索エンジンでElasticsearchというものを使っているのですが、Elasticsearchについてまだまだ知識が足りないので、まとめて整理してみました

Elasticsearchとは

公式には以下の記述が。

Elasticsearchは、様々なユースケースを解決する分散型RESTful検索/分析エンジンです。データを一元的に格納することで、超高速検索や、関連性の細かな調整、パワフルな分析が大規模に、手軽に実行可能になります。Elastic Stackの心臓部となるプロダクトです。

Elasticsearchの特徴

全文検索

全文検索エンジンとは、大量にあるドキュメントデータの中から指定したキーワードを含むドキュメントデータを素早く検索するための仕組み。

高速検索処理

  • 全文検索のための有限状態トランスデューサを使用したインデックス
  • 分析用カラムストア
  • 数値データ・地理データを格納するためのBKDツリー

↑により、繰り返し検索・広範囲検索などの実行が簡単となるためデータ活用性をさらに向上させることが可能

多様なクエリに対応

  • テキスト
  • 構造化データ
  • 非構造化データ
  • 数値
  • 地理情報
  • メトリック  など

公式を見ると、その他にもたくさんの機能があるようです。
https://www.elastic.co/jp/elasticsearch

Elasticsearchの基本概念

  • インデックス
    データを保存する場所で、RDBでいうテーブル。検索を目的としているため元文書の格納は必ずしも必要ない。

  • ノード・クラスタ
    可用性・耐障害性を実現するため、複数のサーバー上で実行。このサーバー群をクラスタ、個々のサーバーとノードという。

  • レプリカ
    それぞれのノードにはシャードのレプリカが存在。更新はもちろんプライマリのシャードに対して行われますが、万が一プライマリのシャードが失われると新しくレプリカのシャードがプライマリとなる。

  • シャード
    大量のデータを使う際、それぞれのノードでデータを分割して保持。その時にシャードと呼ばれる部分インデックスで分割。

おわりに

Elasticsearchの特徴を見る限り、Elasticsearchはさまざまな方法で手にしたい情報に辿り着く手段を備えていることから、かなり優れた検索エンジンであることがわかりました。
次回はRuby環境でElasticsearchを利用する一例についてまとめていこうと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?