Elasticsearchとは何か?利点やKibanaとの連携について解説

Elasticsearchの利用を検討している方で、

・どのような機能があるか分からない…。
・使い方が知りたい…。

という方も多いのではないでしょうか。そこでこの記事では、

・Elasticsearchの機能や利点
・Elasticsearchのインストール手順やKibanaとの連携

についてご紹介します。

検索システムの構築が初めての方でも、この記事を読めば、Elasticsearchの仕組みや使い方について理解できます。

また、Udemyの講座を併用すれば、Elasticsearchのより実践的な使い方が学べるでしょう。

Elasticsearchとは?大量のデータ処理をする全文検索エンジン

Elasticsearch(エラスティックサーチ)とは、Elastic社が提供する全文検索エンジンです。全文検索エンジンでは、大量の文書データの中から特定のキーワードを検索できます。

出典:Elasticsearch:公式分散検索および分析エンジン | Elastic

Elasticsearchでは、「JSON」形式(データ処理に用いられる)で大量のドキュメントを送信できます。検索元となるドキュメントは、複数のノード(サーバー)が連携して動作するElasticsearchの「クラスタ」上に保存され、ドキュメントを効率よく検索するための参照がインデックスに追加されます。

ユーザーは、ElasticsearchのAPIを使ってドキュメントを検索・取得できます。

\文字より動画で学びたいあなたへ/

Udemyで講座を探す >

全文検索とセマンティック検索の違い

検索エンジンでドキュメントを見つける方法には、全文検索とセマンティック検索があります。それぞれの違いは以下の通りです。

全文検索

全文検索とは、複数のドキュメントから、特定のキーワードを検索する仕組みです。全文検索は、ドキュメントを上から順番に検索していくgrep型と、予め作成した索引をもとに検索するインデックス型に分けられます。Elasticsearchは、インデックス型での全文検索が可能です。

例えば、以下のような2つのドキュメントがある場合、次のようなイメージでインデックスを作成します。

ドキュメント1「日本の首都は東京です。」

ドキュメント2「フランスの首都はパリです。」

単語 ドキュメント1
「日本の首都は東京です。」
ドキュメント2
「フランスの首都はパリです。」
日本  
フランス
東京
パリ  
首都

「東京」というキーワードの検索を実行すると、インデックスをもとにドキュメント1がヒットします。不要なファイルをスキャンしないため、インデックス型は短時間で検索できます。

どのようにインデックスを作成するか決める作業は、マッピングと呼ばれます。作成する検索システムの運用目的に合わせて、ドキュメント整理の仕方を決めることができます。

セマンティック検索

セマンティック検索は、検索文の意味を理解し、ユーザーが求める内容に関連するドキュメントを見つける手法です。

例えば、「フランス 旅行」と検索すると、フランス旅行というキーワードが直接的に含まれているドキュメントに加え、フランスの観光名所やお土産について書かれたドキュメントもヒットします。

 

Elastic Stackとは?関連商品のこと

Elastic Stack(エラスティックスタック)は、Elasticsearch関連の製品群で、データの検索や可視化、ログ解析に活用できます

Elastic Stackに含まれる主な製品と機能は以下の通りです。

製品 主な機能
Elasticsearch ドキュメントの保存と検索
Kibana グラフなどによるデータの可視化
Beats データの収集およびElasticsearchへの送信
Logstash データの収集や処理、変換、Elasticsearchへの送信

これらを組み合わせることで、効率的なデータ収集や検索が可能です。

 

Elasticsearchの利点

Elasticsearchの特徴は、動作の速さ、性能の高さ、対応言語の豊富さなどがあります。ここでは、Elasticsearchの利点について解説します。

速い

Elasticsearchは、RESTベースのAPIとスキーマフリーのJSONドキュメントを提供し、アプリケーションを迅速に作成できます

RESTベースのAPIの詳細については、「RESTful APIとは?RESTの6原則とメリット・デメリットを解説!」を参照してください。

高性能

Elasticsearch は、データを複数のサーバーで処理する分散型の検索エンジンです。そのため、大量のデータの保存や、データを検索するための指示であるクエリを効率的に処理し、最適なファイルをすぐに見つけられます

多様な言語に対応

Elasticsearch は、多様なプログラム言語に対応しています。主な言語は以下の通りです。

  • Java
  • Python
  • PHP
  • JavaScript
  • Node.js
  • Ruby

さまざまなプログラム言語を利用できるため、アプリケーション開発を簡単に行えます。

各プログラム言語の詳細については、以下の記事を参考にしてください。

Java入門!言語の特徴や環境構築・基本処理の記述方法を解説!

Python入門!導入方法や基本的な使い方を分かりやすく解説

PHPを使ってできることとは?得意分野を知ってWeb開発に生かそう!

JavaScriptとは?言語の特徴を初心者向けに解説!

「Node.js」とは?プログラミング初心者におすすめの入門編!

Rubyとは?初心者向けプログラミング体験もできる記事!

ログ分析やリアルタイムモニタリングが可能

Elasticsearchでのデータの読み書きにかかる時間は、1秒未満と短いことが多いです。そのため、アプリケーションのモニタリングや異常値の検出など、リアルタイムに近い処理でElasticsearchを活用できます。さらに、Kibanaなどのツールと組み合わせれば、ログの収集や可視化、効率的な統合管理が可能です。

Udemyおすすめ講座

Elasticsearch入門:実践的な全文検索システム構築とKibana活用ガイド elastic searchを学ぶ

Elasticsearch入門:実践的な全文検索システム構築とKibana活用ガイド elastic searchを学ぶ

3.8(10 件の評価)

61 人の受験生

作成者: ほたて Tech School(プログラミング)

現場で使える全文検索エンジンの使い方ががわかる。ELK スタックの中核機能を活用する。ログ分析やデータ可視化など初心者からハンズオンで進めていきます。

\無料でプレビューをチェック!/

講座を見てみる

Elasticsearchの仕組みと動作環境

ここでは、Elasticsearchの検索仕組みと推奨動作環境を解説します。

シャードの役割:Luceneのインデックス

インデックスとは、Elasticsearchに保存するドキュメントを整理して格納する場所のことです。

Elasticsearchでは、ビッグデータをすぐに処理するため、シャードという仕組みによりインデックスを分散して配置します。

Elasticsearchのシャードは、ElasticsearchのベースとなっているLucene(ルシーン)のインデックスに相当します。

動作環境

Elasticsearchの利用時には、2~8コアのCPU、および8GB以上のメモリが推奨されています。

ローカル環境でElasticsearchを利用する場合、WindowsまたはMac OSのどちらでも対応可能です。

 

Elasticsearchのインストール手順

Elasticsearchをインストールする際は、事前にJavaの実行環境をインストールしておく必要があります。まず、Javaの実行環境を用意してから、Elasticsearchをインストールします。

ここでは、以下の環境でElasticsearchをインストールする手順を解説します。

プロセッサ:12th Gen Intel(R) Core(TM) i5-1235U 1.30 GHz
実装 RAM:8.00 GB
システムの種類:64 ビット オペレーティング システム、x64 ベース プロセッサ
OS:Windows 11 Home
Javaのバージョン:23.0.1

Elasticsearch公式サイトからインストールファイルをダウンロード・展開

まず、Elasticsearchの公式サイトからインストールファイルをダウンロードしましょう。

ファイルダウンロード展開画像

ダウンロードしたZIPファイルを任意のフォルダに展開します。

メモリの設定変更を行う

Elasticsearchのデフォルト設定では、メモリ使用量が2GBまたは4GBとなっているため、設定変更が必要です。

展開したデータ内の「config」フォルダにある「jvm」ファイルをテキストエディタなどで開き、以下のように記載されている部分を見つけてください。「4g」の部分は「2g」になっている場合もあります。

## -Xms4g
## -Xmx4g

この設定を、以下のように変更しましょう。

## -Xms512m
## -Xmx512m

この作業により、使用されるメモリの容量を512MBに変更できます。

Elasticsearchを起動し設定を行う

展開したデータ内の「bin」フォルダに含まれる「elasticsearch.bat」ファイルを実行すると、コマンドプロンプトが立ち上がり、Elasticsearchが起動します。

その状態で新たにコマンドプロンプトを立ち上げ、「bin」フォルダに移動した上で、以下のコマンドを実行してください。

elasticsearch-reset-password -u elastic

「Please confirm that you would like to continue [y/N]」というメッセージが表示されるので、「y」を入力します。この操作により、Elasticsearchの「elastic」というユーザーのパスワードが設定されます。

コマンド実行画像

「New value:」に続けて表示されるパスワードの文字列をコピーしておきます。

Elasticsearchの状態を確認する

コマンドプロンプトで以下のコマンドを実行してください。パスワードの文字列には、1つ前の手順でコピーしたものを使用します。

curl -u elastic:パスワードの文字列 localhost:9200?pretty

以下のように、「cluster_name」や「cluster_uuid」、「version」などの各種情報がコマンドプロンプト上に表示されれば、Elasticsearchが正しくインストールされ、起動できた状態です。

コマンドプロンプト画像

日本語が使えるようにする

日本語のドキュメントを検索するには、専用のプラグインをインストールする必要があります。Elasticsearchの公式プラグインである「Kuromoji」を以下のコマンドでインストールします。

elasticsearch-plugin install analysis-kuromoji

以下のようなメッセージが表示されれば、Kuromojiプラグインのインストール完了です。

Kuromoji画像

 

Elasticsearchの応用:Kibanaとの連携(可視化ツール)

ElasticsearchとKibanaは、データ検索に加え、可視化データの高速フィルタリングや集計にも使用されます。

ここでは、Kibanaのインストールから、Elasticsearchで検索したデータの可視化までの手順を解説します。

Kibanaのインストール方法

Elasticsearch公式サイトからKibanaのファイルをダウンロードします。

Kibanaダウンロード画像

ダウンロードしたファイルを展開し、「config」フォルダ内にある「kibana.yml」ファイルをテキストエディタなどで開きます。

ElasticsearchとKibanaを連携するため、「elasticsearch.username」の項目に「elastic」、「elasticsearch.password」の項目にElasticsearchで設定したパスワードを入力してください。

「bin」フォルダ内にある「kibana.bat」ファイルを実行すると、Kibanaが起動します。ブラウザで「http://localhost:5601/」にアクセスし、以下の画面が表示されれば、Kibanaのインストールは完了です。

Kibanaアクセス画像

ElasticsearchとKibanaの使い方

基本的な使い方の例として、Elasticsearchに日本語の短い文章データを登録し、Kibanaで内容を確認する方法を解説します。

まずは、以下のコマンドでElasticsearchに短い日本語の文章データを3つ登録します。

コマンドプロンプトに以下のようなメッセージが表示されていれば、文章の登録は正しく行われています。

コマンドプロンプト メッセージ画像

次に、ブラウザでKibanaの画面にアクセスし、左メニューの「Analytics」→「Discover」をクリックしましょう。

「Analytics」→「Discover」

この画面で、Elasticsearchから登録した文章の一覧表示が可能です。

Elasticsearch一覧画像

データ内容の確認以外にも、検索や分析などの機能がKibanaの画面から利用できます。

 

Elasticsearch+Kibanaを学んでデータの分析・可視化をしよう!

全文検索エンジンのElasticsearchを活用すると、ドキュメントを効率的に管理できます。また、Kibanaと連携すれば、データのフィルタリングや可視化も可能です。

ElasticsearchとKibanaの実践的な使い方を学びたい方には、以下の講座がおすすめです。この講座ではElasticsearchの機能や、ElasticsearchとKibanaを使った検索システムの実装方法などを動画で学べます。Elasticsearchを業務で活用したい方はぜひ参考にしてください。

Elasticsearch入門:実践的な全文検索システム構築とKibana活用ガイド elastic searchを学ぶ

ElasticsearchとKibanaを活用し、データ分析や可視化に挑戦しましょう。