DUICUO

Elasticsearch コンテナをセットアップし、Python を使用して CRUD 操作を実行します。

Docker Compose を使用して Elasticsearch と Kibana を設定する方法と、Python を使用して Elasticsearch で基本的な CRUD 操作を実行する方法を説明します。

Elasticsearchは、大量のデータを効率的に処理するために設計された、人気の高いオープンソース検索エンジンです。JSONドキュメントを使用してデータを保存するNoSQLデータベースです。ログ分析、データ分析、全文検索などに広く利用されています。Elasticsearchは、Elasticsearchに保存されたデータの分析と可視化を支援する強力な可視化ツールであるKibanaと併用されることが多くあります。

クラスター。2台以上のマシンが結合して単一の出力を生成することでクラスターが形成されます。Elasticsearchでは、複数のノードが結合されてデータを保存および管理することでクラスターが形成されます。

ノードは、Elasticsearch クラスター内のマシンであり、データを保存し、クラスターの検索およびインデックス作成機能に参加します。

インデックスとは、特定の類似した特性を持つドキュメントの集合です。Elasticsearchでは、インデックスは従来のリレーショナルデータベースにおけるデータ保存場所であるテーブルに似ています。

ドキュメント。ドキュメントはElasticsearchにおける最も基本的なデータ単位です。従来のデータベースでは、行がElasticsearchのドキュメントに相当します。

フィールド。フィールドは従来のデータベースにおける列に似ています。インデックス内の各ドキュメントには、ドキュメントの属性を定義する独自のフィールドセットがあります。

マッピング。Elasticsearch では、マッピングはインデックスのフィールドとデータ型を定義するスキーマです。

シャーディング:Elasticsearchはインデックスをシャードと呼ばれる小さな断片に分割します。各シャードはクラスター内の別々のノードに保存されるため、データの分散と検索パフォーマンスの向上に役立ちます。

プライマリ シャード: Elasticsearch がセキュリティのために複数のデータ レプリカを保存する場合、1 つのレプリカだけがプライマリ シャードとして指定され、その他はレプリカ シャードと呼ばれます。

Docker Compose を使用して Elasticsearch と Kibana を設定するには、次の手順に従います。

  1. マシンに Docker をインストールします。
  2. プロジェクト用の新しいディレクトリを作成し、その中に「docker-compose.yml」という名前のファイルを作成します。
  3. 「docker-compose.yml」ファイルに次の内容を追加します。
バージョン: '3'
サービス:
エラスティックサーチ:
イメージ: docker.elastic.co/elasticsearch/elasticsearch : 7.17.0
コンテナ名: elasticsearch
環境
-検出.タイプ=単一-ノード
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ポート:
- 「9200:9200」
巻数:
- esdata : / usr / share / elasticsearch / data
キバナ
画像:ドッカー伸縮性のあるco /キバナ/キバナ: 7.17.0
コンテナ名: kibana
ポート:
- 「5601:5601」
環境
ELASTICSEARCH_URL : http : // elasticsearch : 9200
依存:
-エラスティックサーチ
巻数:
esdata :

4. ファイルを保存し、ターミナルで次のコマンドを実行してサービスを開始します。

 docker -構成する

5. サービスが開始すると、http://localhost:9200 および http://localhost:5601 で Elasticsearch および Kibana にアクセスできるようになります。

Docker Composeを使用してElasticsearchとKibanaをセットアップしたら、Pythonを使ってElasticsearchで基本的なCRUD操作を実行できるようになります。このセクションでは、インデックスの作成、ドキュメントの追加、ドキュメントの検索、ドキュメントの更新、ドキュメントの削除の方法を紹介します。

まず、次のコマンドを実行して、Python に Elasticsearch ライブラリをインストールする必要があります。

 pipでelasticsearchをインストールする

ライブラリをインストールしたら、CRUD操作を実行できるようになります。手順は以下のとおりです。

  1. Elasticsearch クライアント オブジェクトを作成します。
 elasticsearchからElasticsearchをインポート

es = Elasticsearch ([{ 'ホスト' : 'localhost' , 'ポート' : 9200 }])

2. インデックスを作成します。

インデックス名= 'my_elasticsearch_index'

es . indices . create ( index = index_name )

3. ファイルをインデックスに追加します。

インデックス名= 'my_elasticsearch_index'
ドキュメント1 = {
'名前' : 'Dhruval'
'年齢' : 30
「都市」「バドダラ」
}

ドキュメント2 = {
「名前」 : 「メアリー」
'年齢' : 25
「都市」「ロサンゼルス」
}

es . index ( index = index_namebody = document1 )
es . index ( index = index_namebody = document2 )

4. ファイルを更新します。

インデックス名= 'my_elasticsearch_index'
ドキュメントID = '1'

# 更新クエリを定義する
更新クエリ= {
「ドキュメント」 : {
"title" : "新しいタイトル" ,
「コンテンツ」「更新されたコンテンツ」
}
}

# ドキュメントを更新する
es . update ( index = index_namedoc_type = doc_typeid = doc_idbody = update_query )

5. ファイルを検索します。

インデックス名= 'my_elasticsearch_index'
search_term = 'Dhruval'

クエリ= {
'クエリ' : {
'マッチ' : {
'名前' :検索語
}
}
}

results = es . search ( index = index_namebody = query )

結果内の結果[ 'hits' ][ 'hits' ]:
print (結果[ '_source' ] )

curl コマンドを実行することで、インデックスが作成されたかどうかを確認できます。また、Python ループを実行することで、複数のインデックスを一度に作成することもできます。Elasticsearch でインデックスを検索するには、特定のインデックスを検索するコード、または特定のプレフィックスで始まるすべてのインデックスを検索するコードを記述できます。Elasticsearch ライブラリを使用するか、入力ファイルを読み取ることで、インデックスを削除することもできます。

Docker Composeを使ってElasticsearchとKibanaを設定する方法と、Pythonを使ってElasticsearchでCRUD操作を実行する方法を見てきました。Elasticsearchはデータの検索と分析のための強力なツールであり、Pythonライブラリを使って既存のプロジェクトに簡単に統合できます。