ElasticSearch入門 インデックス・タイプ・マッピング・アナライザなどの用語まとめ


ElasticSearchの入門がてら、概念や用語を整理したいと思う。
基本、公式ドキュメントの翻訳。
https://www.elastic.co/guide/index.html

基本概念やデータ構造

クラスタ

ElasticSearchはスタンドアロンで稼働するが、複数のサーバーで連携して動かすこともできる。それらのサーバー群のことをクラスタという。

ノード

複数のサーバー群をクラスタ、個々のサーバーをノードと言う。

シャード

多くのデータを処理する際、ノードのメモリ等が足りなくなる場合がある。シャードと呼ばれる部分インデックスに分割して複数のサーバーに別に収納することで、データ処理を分散することが可能。

レプリカ

シャードのレプリカのこと。シャードはレプリカ(コピー)を作ることができ、読み出しを分散することが可能。
書き込みはプライマリシャードのみ。

インデックス

データを保存する場所。MySQLにおけるデータベースのようなもの。
ただ、捉え方によってはMySQLにおけるテーブル、MongoDBにおけるコレクションとも言える。

(ドキュメント)タイプ

インデックス内のオブジェクト区分。
例えば、記事とユーザーなど、オブジェクトを区分できる。
MySQLにおけるテーブル、MongoDBにおけるコレクションのようなもの。

ドキュメント

データ。
MySQLにおけるレコードのようなもの。

フィールド

ドキュメントはフィールドで構成される。
MySQLにおけるカラムのようなもの。

(スキーマ)マッピングとは

DB設計、Railsのスキーマのようなもの。
ドキュメントのタイプやフィールド、アナライザの指定などを定義することができる。

アナライザとは

データをどのように処理するかを予め指定する機能。
例えば、事前に空白で文字を分割する、全て小文字で扱う、日本語形態素解析して単語ごとに分割するなど。
トークナイザとトークンフィルタからできている。トークンフィルタはない場合がある。
アナライズ処理は、まずトークナイザでトークナイゼーションという文字の分割処理を行い、トークンフィルタでフィルタリングを行う。


トークナイザ(tokenizer)

文字列の分割をする機能。
様々なトークナイザがあり、例えば1文字づつに分解したりできるNGramトークナイザや、日本語形態素解析ができるKuromojiプラグインを入れて、kuromojiをトークナイザとして指定することで、日本語を単語ごとに分割することができたりします。

トークンフィルタ(Token Filter)

トークナイザで処理した文字列を変更したり、削除や追加ができる。
例えば、全て小文字にしたり、文字の一部を削除したり、別名の追加など。

 

次回はよく使われる、Kuromojiアナライザについてまとめようと思います。

本サイトが運営するWebデザインのオンラインスクールが公開中!
以下のリンクからお申込みで、特別料金の70%OFF!

未経験からプロのWebデザイナーになる! 400レッスン以上の完全マスターコース
こちらのコースは全くの未経験の方が、プロのWebデザイナーとして働けるレベルになることを目的としたコースです。
・全422レッスン & 42時間! 通学スクール80万円相当の内容
・授業×チャレンジ課題で実践的なスキルが身につく!
・過去1100名以上のスクール卒業生を輩出した、 Webサービス運営企業・デザイナー輩出企業だからこそ作れるプログラム

Webやアプリの最新デザインツール Sketch3 |100レッスンの完全マスターコース
Sketch3未経験からプロレベルを目指す、充実したコースです。
Sketch3の単なる機能説明をするような、つまらないコースではなく、アイコン制作、ボタン作成、メインビジュアル制作、Webページの制作など、実際の制作をしながら実践力を身につけます。
1000名以上の卒業生がいる実績ある日本のWebデザインスクールが提供しています。


kunishii

國重侑輝 Campus inc CEO。京都でスタートアップが生まれ、育ち、旅立つ場所を作ってます。最近の興味は、Ruby・Rails / UX / React / スタートアップファイナンス /グロースハック / AWS / グラフデータベース / 自然言語処理など。 http://campus-inc.org

Next ArticleRails + React + Material UI + Webpack / babel + foremanで動かすアプリケーション