5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Elasticsearchとは何か?

Last updated at Posted at 2022-03-19

はじめに

最近実務でElasticsearchを触る機会があり、0から勉強しました。

本稿では、初学者向けに「Elasticsearchとは何か?」というテーマでお伝えしていきます。

知識だけではなく、後半では実際にElasticsearchとKibanaをインストールして動かしています。

公式ドキュメントはこちら。

まずは知識をつけていきましょう。

Elasticsearchとは何か?

Elasticsearchは、分散型で無料かつオープンな検索・分析エンジンです。

Elastic社が運営するサービス群(Elastic Stack)の1つです。

Elasticsearchの利点は?

Elasticsearchには、下記のような利点があります。

image.png

JSONベースでAPIによってデータを扱えるので、開発もしやすそうですね。

これで 無料 とは驚きです!

Elasticsearchのデータ構造は?

イメージとしては下記の図のようになっています。

image.png

Elasticsearchは受け取ったJSONデータをドキュメントとして格納します。

ドキュメントを相互に関連づけることでElasticsearchインデックスを作成します。

Elasticsearchインデックスとは、相互に関連付けられたドキュメントの集合です。

ドキュメントのフィールドはMappingと呼ばれます。

Elasticsearchでは倒置インデックスと呼ばれるデータ構造が使用されています。

この倒置インデックスは、あらゆるドキュメントに出現する一意の単語をすべてリスト化することで、その単語が存在するドキュメントをすべて特定することができます。

RDBと用語を対応させると、以下の表のようになります。

Elasticsearch RDB
Elasticsearchインデックス DB
Mapping テーブル
ドキュメント レコード

一文にまとめると、下記の通りです。

ElasticsearchはElasticsearchインデックスを通じてMappingごとに分けてドキュメントを格納し、倒置インデックスを構築して、ドキュメントのデータをほぼリアルタイムに検索できます。


ここからは、実際にインストールした際の様子をお伝えします。

参考リンク
https://dev.classmethod.jp/articles/elasticsearch-starter-1/#toc-8

Elasticsearch, Kibanaのインストール

1. ダウンロード

Elasticsearch

ダウンロードリンクから、Zipファイルをダウンロード。
https://www.elastic.co/jp/downloads/elasticsearch

image.png
今回はM1 Mac上でインストールを行います。

加えて、今回はブラウザ上でElasticsearchを操作できる「Kibana」というツールも同時にインストールします。

Kibana

ダウンロードリンクから、Zipファイルをダウンロード。
https://www.elastic.co/jp/downloads/kibana
image.png

2. 解凍

Zipファイルをダウンロードしたディレクトリへ移動し、下記コマンドで解凍します。

% tar xvzf elasticsearch-8.1.0-darwin-aarch64.tar
% tar xvzf kibana-8.1.0-darwin-aarch64.tar

3. Elasticsearch起動

解凍後のディレクトリへ移動し、起動コマンドを実行します。

% cd elasticsearch-8.1.0
% ./bin/elasticsearch

このような表示が出ればOKです!

[2022-03-19T17:58:42,927][INFO ][o.e.i.g.GeoIpDownloader  ] [MacBook.local] successfully downloaded geoip database [GeoLite2-City.mmdb]
[2022-03-19T17:58:44,342][INFO ][o.e.i.g.GeoIpDownloader  ] [MacBook.local] successfully downloaded geoip database [GeoLite2-Country.mmdb]
[2022-03-19T17:58:44,408][INFO ][o.e.i.g.DatabaseNodeService] [MacBook.local] successfully loaded geoip database file [GeoLite2-Country.mmdb]
[2022-03-19T17:58:44,543][INFO ][o.e.i.g.DatabaseNodeService] [MacBook.local] successfully loaded geoip database file [GeoLite2-City.mmdb]

この時、ターミナル上に認証情報が表示されているはずです。

この認証情報は後々使用しますので、エディタなどに控えておくかターミナルを開きっぱなしにしておきましょう。

ℹ️  Password for the elastic user (reset with `bin/elasticsearch-reset-password -u elastic`):
  XXXXXXXXXXX(elasticユーザーのパスワード。5.で使用します。)

ℹ️  Configure Kibana to use this cluster:
• Run Kibana and click the configuration link in the terminal when Kibana starts.
• Copy the following enrollment token and paste it into Kibana in your browser (valid for the next 30 minutes):
  XXXXXXXXXXX(トークン。5.で使用します。)

4. Kibana起動

※ここはターミナルの別タブ上で作業することをおすすめします。

解凍後のディレクトリへ移動し、起動コマンドを実行します。

% cd cd kibana-8.1.0
% ./bin/kibana

おっと、起動できなかったです。
image.png

こういう時は、左上の:apple:マークから許可設定してあげましょう。
:apple:→システム環境設定→セキュリティとプライバシー

「このまま許可」ボタンをクリック
image.png

再度起動コマンドを実行します。

% ./bin/kibana

「悪質なソフトウェアかどうかを〜」と表示されても気にせず「開く」をクリックします。
image.png

今度は「re2.node」が起動できなかったようです。また「このまま許可」をクリックします。
image.png

下記のようなメッセージが表示されればOKです!

Go to http://localhost:5601/?code=202697 to get started.

image.png

5. ブラウザからアクセス

では、ブラウザを立ち上げ、4.で表示されたURLにアクセスしてみましょう。

今回は下記URLです。
http://localhost:5601/?code=202697

Kibanaの初期画面が表示されました!
image.png

トークンは3.のターミナル上に表示されていますので、入力して「Configure Elastic」をクリックします。

すると、ログイン画面が表示されます。

image.png

Usernameはelastic、Passwordは3.で表示されたパスワードを入力します。

ログインできました!

image.png

今回は「Explore on my own」をクリックします。

Home画面が表示されました!かっこいい!
image.png

では、実際にクエリを実行してみましょう。

左上のメニューから、「Dev Tools」をクリックします。
image.png

すると、コンソールが表示されます。

左の入力画面にカーソルを入れます。
image.png

⌘ + エンターキー、または右上の「▶︎」をクリックすると……?
image.png

右側にクエリ実行結果が表示されました:v:
image.png
cca74b4f2dd0cb26ad86a5756421e9ca.gif

正常に動作していますね!

以上でインストールは終了です。

この後は、データを入れたり取り出したりして遊んでみようと思います!

おわりに

今回は「Elasticsearchとは何か?」というテーマで、実際にインストールして動かすところまでやってみました。

参考になれば幸いです!

5
3
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
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?