Windows と Ubuntu で MongoDB を使用して Elasticsearch をインストールして使用する

Mehvish Ashiq 2024年2月16日
  1. Elasticsearch とは何ですか
  2. Elasticsearch を Windows 10 にインストールする
  3. Ubuntu 20.04 に Elasticsearch をインストールする
  4. MongoDB で Elasticsearch を使用する主な理由
Windows と Ubuntu で MongoDB を使用して Elasticsearch をインストールして使用する

この記事は、Windows および Ubuntu 20.04 での Elasticsearch のステップバイステップのインストールおよび構成ガイドです。また、両方のオペレーティングシステムで MongoDB を使用した Elasticsearch の使用方法も示しています。

Elasticsearch とは何ですか

Elasticsearch は、ログを保存するように設計されたオープンソースのリアルタイム分散分析エンジンである NoSQL データベースです。Elasticsearch は、Java プログラミングと ApacheLucene 上で開発されています。

LinkedIn や OpenStack を含む多くの有名な企業がそれを使用しています。スキーマやテーブルではなく、ドキュメントに基づくフルテキスト検索をサポートします。

また、データの移行、インデックス作成、および同期にも使用されます。Elasticsearch は、アプリケーションで必要な検索操作とフィルターが多すぎる場合に最適です。

Elasticsearch を Windows 10 にインストールする

ステップ 1:Java がインストールされているかどうかを確認する

Elasticsearch を Windows 10 にインストールするには、最新バージョンの Java をマシンにインストールする必要があります。次のコマンドのいずれかを使用して、Java がマシンにすでにインストールされていることを確認することもできます。

Elasticsearch をインストールするには、Java バージョン 7 以降が必要です。

Windows と ubuntu に elasticsearch をインストールして使用します-Windows の Java バージョンを確認します

ステップ 2:Elasticsearch .zip ファイルをダウンロードする

このウェブサイトにアクセスし、次のスクリーンショットのダウンロードリンクをクリックしてください。次に、Elasticsearch を使用するプラットフォームを選択し、.zip ファイルをダウンロードします。

Windows と ubuntu に elasticsearch をインストールして使用する-Windows に elasticsearch をダウンロードする

ステップ 3:Elasticsearch バッチファイルを実行する

.zip ファイルをダウンロードしたら、それを目的の場所に解凍します。次に、bin フォルダに移動し、elasticsearch バッチファイルをダブルクリックします。

Windows と ubuntu に mongodb を指定して elasticsearch をインストールして使用します-Windows で elasticsearch を実行します

これは、舞台裏で実行される手順を含む標準の Windows バッチファイルに他なりません。さらに、次のように表示される Elasticsearch デーモンをマシンに起動するのに役立ちます。

それを開いたままにして、次の手順に従います。

Windows と ubuntu に elasticsearch をインストールして使用します-Windows に elasticsearch デーモン

手順 4:認証を無効にする(学習目的でのみ)

デフォルトでは、認証は有効になっています。つまり、ログイン資格情報を入力する必要があります。デフォルトのログイン資格情報を使用するか、このページに従って変更することができます。

この記事では、認証を無効にします(これは学習目的のみですが、実稼働環境で推奨されます)。メモ帳を使用して、%ES_HOME%\config\elasticsearch.yml パスにある elasticsearch.yml ファイルを開きます。

ここで、ES_HOME は Elasticsearch のホームディレクトリです。たとえば、この場合、elasticsearch.ymlC:\Users\DelftStack\Desktop\elasticsearch-8.2.2-windows-x86_64\elasticsearch-8.2.2\config にあります。

elasticsearch.yml ファイルを開いたら、次のスクリーンショットに示すように、xpack.security.enabled オプションを検索し、その値を false にします。

Windows と ubuntu に elasticsearch をインストールして使用する-Windows で elasticsearch 認証を無効にする

Elasticsearch を停止し、elasticsearch.bat ファイルを実行して再開します。

ステップ 5:ブラウザで Elasticsearch を実行する

お気に入りのブラウザで http://localhost:9200 と入力します。次のスクリーンショットのようなページが表示された場合、Elasticsearch は正常に稼働しています。

Windows と ubuntu に elasticsearch をインストールして使用する-elasticsearch は Windows で稼働しています

Ubuntu 20.04 に Elasticsearch をインストールする

ステップ 1:必要な依存関係をインストールする

パッケージインデックスの更新/アップグレード:

sudo apt update
sudo apt upgrade

Windows OS と同様に、Elasticsearch をインストールするには Ubuntu でも Java が必要です。まだインストールされていない場合は、以下のコマンドを実行して、Ubuntu 20.04 にデフォルトの JDK をインストールします。

sudo apt install openjdk-8-jdk

インストールしたら、java -version を使用して、そこにあるかどうかを確認します。

Windows と ubuntu に elasticsearch をインストールして使用します-ubuntu で java バージョンを確認します

また、HTTPS を介してすべてのリポジトリにアクセスできるようにするには、APT トランスポートパッケージをインストールする必要があります。

sudo apt install apt-transport-https

Windows と ubuntu に elasticsearch をインストールして使用します-ubuntu に apt トランスポートをインストールします

ステップ 2:Ubuntu に Elasticsearch をダウンロードしてインストールする

次の仕事は、Elasticsearch リポジトリを追加することです。wget クエリを使用して公開キーをプルします。

すべてがうまくいけば、出力として OK が必要です。

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Windows と ubuntu に mongodb を使用して elasticsearch をインストールして使用します-ubuntu に elasticsearch リポジトリを追加します

次に、次のコマンドを実行して、リポジトリをシステムに追加します。このチュートリアルを書いている時点でこれが最新バージョンであるため、次のコマンドで 8.x を書いています。

echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list

もう一度、以下のコマンドを使用してパッケージインデックスを更新します。

sudo apt update

次のコマンドを実行して、Elasticsearch をインストールします。インストールには時間がかかる場合があります。

だから、それを正常に完了させてください。

sudo apt install elasticsearch

Windows と ubuntu に elasticsearch をインストールして使用する-ubuntu に elasticsearch をインストールする

インストール後、Elasticsearch は起動しないため、起動する必要があります。また、マシンを再起動する場合は、Elasticsearch を再実行する必要があります。

この状況を回避するには、以下のコマンドを実行して、システムの再起動後に Elasticsearch を自動的に再ロードします。

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service

次に、次のコマンドを使用して、Elasticsearch のステータスを確認します。

sudo systemctl status elasticsearch

Windows と ubuntu に elasticsearch をインストールして使用する-ubuntu の elasticsearch ステータス

ステップ 3:Elasticsearch を構成する

デフォルトでは、Elasticsearch は基本的な使用のために事前設定されています。セットアップで 1つのノードを使用する場合は、構成ファイルを変更する必要はありません。

Elasticsearch 構成を編集する場合は、/etc/elasticsearch ディレクトリの elasticsearch.yml ファイルを編集します。ロギングの構成は/var/log/elasticsearch/logging.yml にもあります。

このチュートリアルの認証を無効にするために、elasticsearch.yml ファイルを編集しています。xpack.security.enabled の値を true から false に変更します。

elasticsearch.yml ファイルを編集するときは、次のコマンドを使用してサービスを再起動することを忘れないでください。

sudo systemctl restart elasticsearch.service

次に、次のコマンドを使用して、Elasticsearch が稼働しているかどうかを確認します。

curl localhost:9200

Windows と ubuntu に elasticsearch をインストールして使用する-elasticsearch は ubuntu で稼働しています

ブラウザで http://localhost:9200 と入力することもできます。これにより、上記の curl コマンドと同じ結果が表示されます。さらに、この記事をチェックして Elasticsearch を保護することができます。

Windows と ubuntu に mongodb を指定して elasticsearch をインストールして使用します-ubuntu で elasticsearch を実行します

MongoDB で Elasticsearch を使用する主な理由

MongoDB を使用してデータを保存およびクエリし、Elasticsearch を使用してデータのフルテキストインデックスを作成します。したがって、両方の組み合わせ(インデックス作成用の Elasticsearch と保存用の MongoDB)は、多くの企業が従う一般的なアーキテクチャの 1つです。

Elasticsearch は検索を目的として開発されており、データのインデックス作成のための高度な機能も提供します。データ分析のために Kibana および Logstash と一緒に機能します。

Elasticsearch を使用する利点の 1つは、指定されたドキュメント内のすべてのフィールドを高速に検索できることです。これは、個人の Google でデータを検索することと考えることができます。

さまざまなシナリオで Elasticsearch を使用することもできます。たとえば、同期を実行したり、検索エンジンデータ移行インデックス作成などを構築したりできます。

このチュートリアルでは、同期の目的で MongoDB で Elasticsearch を使用する方法を学習します。

同期の実行に Elasticsearch を使用する

Windows / Ubuntu で Elasticsearch と MongoDB を使用して同期を実行するには、以下の手順に従う必要があります。その前に、すべての依存関係があることを確認してください。

たとえば、このコード例では Node.js を使用しています。さらに、両方のデータベースエンジン(MongoDB と Elasticsearch)を実行し続けます。

その後、手順に従っていきましょう。

  • mongoose および mongoosastic パッケージをインポートします。
  • MongoDB エンジンとの正常な接続を確立します。
  • MongoDB スキーマを作成します。
  • mongoosastic プラグインを使用して Elasticsearch に接続します。
  • 最初に MongoDB モデルを作成し、次に Elasticsearch マッピングを作成します。
  • MongoDB データベースにデータを追加し、Elasticsearch と同期する必要があります。

サンプルコード(コード全体をファイルに入れ、app.js ファイルに入れます):

// Step 1:
const mongoose = require('mongoose');
const mongoosastic = require('mongoosastic');

// Step 2:
mongoose.connect('mongodb://localhost:27017/studentdb');

// Step 3:
var StudentSchema =
    new mongoose.Schema({firstname: String, lastname: String, city: String});

// Step 4:
StudentSchema.plugin(mongoosastic, {'host': 'localhost', 'port': 9200});

// Step 5:
var Student = mongoose.model('student', StudentSchema);
Student.createMapping((err, mapping) => {
  console.log('mapping created');
});

// Step 6:
var newStudent =
    new Student({firstname: 'Mehvish', lastname: 'Ashiq', city: 'Lahore'});

newStudent.save((err) => {
  if (err) {
    console.log(err);
  }
  console.log('Student is added in both databases');
})

newStudent.on('es-indexed', (err, result) => {
  console.log('indexed to elastic search');
});

次に、このコードを実行します。次のようになります。

Windows および ubuntu に mongodb を使用して elasticsearch をインストールして使用します-ファイルを実行します

次のように MongoDB のエントリを確認します。

Windows と ubuntu に mongodb を使用して elasticsearch をインストールして使用します-mongodb のエントリを確認します

次に、http://localhost:9200/students/_search を開いて、Elasticsearch でも確認します。次のスクリーンショットのようになります。

Windows と ubuntu に mongodb を使用して elasticsearch をインストールして使用します-elasticsearch のエントリを確認します

著者: Mehvish Ashiq
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook