はじめに
最近実務でElasticsearchを触る機会があり、0から勉強しました。
本稿では、初学者向けに「Elasticsearchとは何か?」というテーマでお伝えしていきます。
知識だけではなく、後半では実際にElasticsearchとKibanaをインストールして動かしています。
公式ドキュメントはこちら。
まずは知識をつけていきましょう。
Elasticsearchとは何か?
Elasticsearchは、分散型で無料かつオープンな検索・分析エンジンです。
Elastic社が運営するサービス群(Elastic Stack)の1つです。
Elasticsearchの利点は?
Elasticsearchには、下記のような利点があります。
JSONベースでAPIによってデータを扱えるので、開発もしやすそうですね。
これで 無料 とは驚きです!
Elasticsearchのデータ構造は?
イメージとしては下記の図のようになっています。
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
加えて、今回はブラウザ上でElasticsearchを操作できる「Kibana」というツールも同時にインストールします。
Kibana
ダウンロードリンクから、Zipファイルをダウンロード。
https://www.elastic.co/jp/downloads/kibana
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
こういう時は、左上のマークから許可設定してあげましょう。
→システム環境設定→セキュリティとプライバシー
再度起動コマンドを実行します。
% ./bin/kibana
「悪質なソフトウェアかどうかを〜」と表示されても気にせず「開く」をクリックします。
今度は「re2.node」が起動できなかったようです。また「このまま許可」をクリックします。
下記のようなメッセージが表示されればOKです!
Go to http://localhost:5601/?code=202697 to get started.
5. ブラウザからアクセス
では、ブラウザを立ち上げ、4.で表示されたURLにアクセスしてみましょう。
今回は下記URLです。
http://localhost:5601/?code=202697
トークンは3.のターミナル上に表示されていますので、入力して「Configure Elastic」をクリックします。
すると、ログイン画面が表示されます。
Usernameはelastic
、Passwordは3.で表示されたパスワードを入力します。
ログインできました!
今回は「Explore on my own」をクリックします。
では、実際にクエリを実行してみましょう。
左上のメニューから、「Dev Tools」をクリックします。
すると、コンソールが表示されます。
⌘ + エンターキー、または右上の「▶︎」をクリックすると……?
正常に動作していますね!
以上でインストールは終了です。
この後は、データを入れたり取り出したりして遊んでみようと思います!
おわりに
今回は「Elasticsearchとは何か?」というテーマで、実際にインストールして動かすところまでやってみました。
参考になれば幸いです!