本番環境への Elasticsearch のデプロイ: ベスト プラクティスとトラブルシューティングのヒント - インデックス作成とデータ アップロード (2)

序文

ここに画像の説明を挿入
「作者のホームページ」Sprite Youbai Bubbles
「個人サイト」スプライトの個人サイト
「おすすめコラム」

Java ワンストップ サービス
入門から習熟まで対応
クールなフロントエンド コード共有
0 からヒーロー、Vue が神になるまでの道
uniapp-構築からプロモーションまで
0 からヒーロー、 Vueが神になる道
アルゴリズムは1カラムで解ける
0からアーキテクチャを語ろう
データの循環の絶妙なやり方
先進的なバックエンドへの道

画像の説明を追加してください


ここに画像の説明を挿入

インデックス管理

インデックス作成は、Elasticsearch の中核となる概念の 1 つです。これは、文書を保存および検索するためのデータベースのテーブルに似たデータ構造です。この記事では、Elasticsearch インデックスを作成、更新、削除、維持する方法を説明し、フィールド タイプとアナライザーをマップする方法を学習します。

インデックスを作成する

1. Java APIを使用してインデックスを作成します。

新しいインデックスは Java API を使用して作成できます。my_index という名前のインデックスを作成するコード例を次に示します。

RestHighLevelClient client = new RestHighLevelClient(
        RestClient.builder(new HttpHost("localhost", 9200, "http")));

CreateIndexRequest request = new CreateIndexRequest("my_index");
CreateIndexResponse response = client.indices().create(request, RequestOptions.DEFAULT);

上記のコードは、RestHighLevelClient オブジェクトを使用して my_index というインデックスを作成します。

2. CURL コマンドを使用してインデックスを作成します。

CURL コマンドを使用して、Elasticsearch でインデックスを直接作成することもできます。以下は、CURL コマンドを使用して my_index という名前のインデックスを作成する例です。

curl -XPUT 'localhost:9200/my_index?pretty'

インデックスを更新する

1. Java APIを使用してインデックス設定を更新する

既存のインデックスの設定は、Java API を使用して更新できます。my_index という名前のインデックスのレプリカの数を 1 から 2 に変更するコードの例を次に示します。

UpdateSettingsRequest request = new UpdateSettingsRequest("my_index");
request.settings(Settings.builder()
        .put("index.number_of_replicas", 2));
AcknowledgedResponse response = client.indices().putSettings(request, RequestOptions.DEFAULT);

上記のコードは、UpdateSettingsRequest オブジェクトを使用して、my_index インデックスのレプリカの数を 2 に変更します。

2. CURL コマンドを使用してインデックス設定を更新します。

既存のインデックスの設定は、CURL コマンドを使用して更新できます。次に、my_index という名前のインデックスのレプリカの数を 1 から 2 に変更する例を示します。

curl -XPUT 'localhost:9200/my_index/_settings?pretty' -H 'Content-Type: application/json' -d'
{
    "index" : {
        "number_of_replicas" : 2
    }
}
'

インデックスの削除

1. Java APIを使用してインデックスを削除します。

既存のインデックスは、Java API を使用して削除できます。以下は、my_index という名前のインデックスを削除するコード例です。

DeleteIndexRequest request = new DeleteIndexRequest("my_index");
AcknowledgeResponse response = client.indices().delete(request, RequestOptions.DEFAULT);

上記のコードは、DeleteIndexRequest オブジェクトを使用して、my_index という名前のインデックスを削除します。

2. CURL コマンドを使用してインデックスを削除します。

既存のインデックスは、CURL コマンドを使用して削除できます。以下は、my_index という名前のインデックスを削除する例です。

curl -XDELETE 'localhost:9200/my_index?pretty'

フィールドタイプとアナライザーのマッピング

インデックスを作成するときは、フィールド タイプとアナライザーをマップする必要があります。フィールド タイプは、文字列、数値、日付などのフィールド値のタイプを定義します。アナライザーは、テキストを用語に変換するためのルールを定義します。以下は、タイトル フィールドとコンテンツ フィールドを含むインデックスを作成し、これら 2 つのフィールドをテキスト型にマッピングする例です。

CreateIndexRequest request = new CreateIndexRequest("my_index");
request.mapping("properties", "title", "type=text",
        "analyzer=standard",
        "fields=keyword",
        "content", "type=text",
        "analyzer=english");
CreateIndexResponse response = client.indices().create(request, RequestOptions.DEFAULT);

上記のコードは、CreateIndexRequest オブジェクトを使用して my_index という名前のインデックスを作成し、それをタイトル フィールドとコンテンツ フィールドを含むテキスト タイプにマップします。

結論は

この記事では、Elasticsearch インデックスを作成、更新、削除する方法と、フィールド タイプとアナライザーをマップする方法について説明します。インデックスを作成するときは、検索効率を向上させるためにフィールド タイプとアナライザーを考慮する必要があります。Elasticsearch インデックスは、Java API または CURL コマンドを使用して管理できます。

データのアップロードとクエリ

Elasticsearch インデックスへのデータのアップロードとさまざまなクエリの実行は、Elasticsearch を使用する中心的な機能の 1 つです。この記事では、Elasticsearch インデックスにデータをアップロードし、さまざまなクエリを使用してデータを取得およびフィルターする方法について説明します。

Elasticsearch へのデータのアップロード

1. Java API を使用してデータをアップロードする

データは、Java API を使用して Elasticsearch インデックスにアップロードできます。以下は、RestHighLevelClient オブジェクトを使用して、my_index という名前のインデックスにドキュメントをアップロードするコード例です。

IndexRequest request = new IndexRequest("my_index");
request.id("1");
String jsonString = "{" +
        "\"name\":\"John\"," +
        "\"age\":30," +
        "\"city\":\"New York\"" +
        "}";
request.source(jsonString, XContentType.JSON);
IndexResponse response = client.index(request, RequestOptions.DEFAULT);

上記のコードは、IndexRequest オブジェクトを使用して、ニューヨーク在住の John (30 歳) という名前のドキュメントを my_index という名前のインデックスにアップロードします。

2. CURL コマンドを使用してデータをアップロードします

CURL コマンドを使用してデータを Elasticsearch インデックスにアップロードすることもできます。以下は、ニューヨークにある John (30 歳) という名前のドキュメントを my_index という名前のインデックスにアップロードする例です。

curl -XPOST 'localhost:9200/my_index/_doc/1?pretty' -H 'Content-Type: application/json' -d'
{
    "name": "John",
    "age": 30,
    "city": "New York"
}
'

データの検索とフィルタリング

1. Java APIを使用してデータを検索およびフィルタリングする

Elasticsearch インデックス内のデータは、Java API を使用して検索およびフィルタリングできます。以下は、RestHighLevelClient オブジェクトを使用して単純な match_all クエリを実行するコード例です。

SearchRequest request = new SearchRequest("my_index");
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(QueryBuilders.matchAllQuery());
request.source(sourceBuilder);
SearchResponse response = client.search(request, RequestOptions.DEFAULT);

上記のコードは、SearchRequest オブジェクトと SearchSourceBuilder オブジェクトを使用して単純な match_all クエリを実行し、すべてのドキュメントを返します。

2. CURL コマンドを使用してデータを検索およびフィルタリングする

CURL コマンドを使用して、Elasticsearch インデックス内のデータを検索およびフィルタリングすることもできます。以下は、match_all クエリを使用して、my_index という名前のインデックス内のすべてのドキュメントを取得する例です。

curl -XGET 'localhost:9200/my_index/_search?pretty' -H 'Content-Type: application/json' -d'
{
    
    
    "query": {
    
    
        "match_all": {
    
    }
    }
}
'

結論は

この記事では、データを Elasticsearch インデックスにアップロードし、さまざまなクエリを使用してデータを取得およびフィルターする方法について説明します。Elasticsearch インデックスは、柔軟で使いやすい Java API または CURL コマンドを使用して管理できます。実際のアプリケーションでは、データ モデルとクエリ要件に従って、データをアップロードおよびクエリするための適切な方法を選択する必要があります。

おすすめ

転載: blog.csdn.net/Why_does_it_work/article/details/132178257