返回

Elasticsearch:Java 应用中创建映射和批量写入数据的简单指南

后端

在之前的文章中,我们探索了使用最新的 Elasticsearch Java 客户端 8.0 来创建索引并进行搜索。现在,我们将更进一步,深入了解如何在 Java 应用中创建映射并进行批量写入,从而实现更高效的数据存储和检索。

1. 创建映射

映射是定义索引中文档结构的过程。它告诉 Elasticsearch 如何解析和存储文档中的数据,以便以后可以对其进行搜索和检索。要创建映射,您可以使用以下步骤:

  1. 导入必要的库:
import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.xcontent.XContentType;
  1. 创建 CreateIndexRequest 对象,并指定索引名称和映射设置:
CreateIndexRequest request = new CreateIndexRequest("my_index");
String mapping = "{\n" +
    "  \"properties\": {\n" +
    "    \"name\": {\n" +
    "      \"type\": \"text\"\n" +
    "    },\n" +
    "    \"age\": {\n" +
    "      \"type\": \"integer\"\n" +
    "    }\n" +
    "  }\n" +
    "}";
request.mapping(mapping, XContentType.JSON);
  1. 使用 RestHighLevelClient 执行创建索引请求:
try (RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200)))) {
  client.indices().create(request, RequestOptions.DEFAULT);
}

2. 批量写入数据

批量写入是将多个文档同时写入索引的过程。这可以提高写入性能,并减少网络开销。要进行批量写入,您可以使用以下步骤:

  1. 导入必要的库:
import org.elasticsearch.action.bulk.BulkRequest;
import org.elasticsearch.action.bulk.BulkResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.xcontent.XContentType;
  1. 创建 BulkRequest 对象,并添加要写入的文档:
BulkRequest request = new BulkRequest();
request.add(new IndexRequest("my_index", "my_type", "1")
    .source(XContentType.JSON, "{\n" +
    "  \"name\": \"John Doe\",\n" +
    "  \"age\": 30\n" +
    "}"));
request.add(new IndexRequest("my_index", "my_type", "2")
    .source(XContentType.JSON, "{\n" +
    "  \"name\": \"Jane Doe\",\n" +
    "  \"age\": 25\n" +
    "}"));
  1. 使用 RestHighLevelClient 执行批量写入请求:
try (RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200)))) {
  BulkResponse response = client.bulk(request, RequestOptions.DEFAULT);
}

结语

通过本教程,您已经掌握了如何在 Java 应用中使用 Elasticsearch 创建映射并进行批量写入。这些操作对于高效的数据存储和检索至关重要。如果您想进一步了解 Elasticsearch 的其他功能,请继续关注我的文章,我将为您带来更多精彩内容。