【问题标题】:How to insert document into ElasticSearch using RestHighLevelClient in Java Spring Boot如何在 Java Spring Boot 中使用 RestHighLevelClient 将文档插入 ElasticSearch
【发布时间】:2018-08-22 05:58:29
【问题描述】:

我正在开发一个使用 RestHighLevelClient 将文档插入 ElasticSearch 的 Spring Boot 程序。现在我已经为客户端构建了配置,但是,我不确定如何插入/索引。 ElasticSearch 上的文档让我感到困惑..

这是我目前尝试过的一段代码:

@KafkaListener(topics = "${kafka.topic}",groupId = "test")
public void receive(String message) {

    LOGGER.info(message);
    insertData(message);
    latch.countDown();
}

private void insertData(String message){
    IndexRequest request = new IndexRequest(
            "fx-rate",
            "_doc",
            "1");
    request.source(message, XContentType.JSON);
}

【问题讨论】:

    标签: java rest spring-boot elasticsearch


    【解决方案1】:

    一个 RestHighLevelClient 实例需要一个 REST 低级客户端构建器,构建如下

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

    创建索引(如果不存在)

    CreateIndexRequest request = new CreateIndexRequest("twitter");

    更新文档:

    XContentBuilder builder = XContentFactory.jsonBuilder();
    builder.startObject();
    {
        builder.field("updated", new Date());
        builder.field("reason", "daily update");
    }
    builder.endObject();
    UpdateRequest request = new UpdateRequest("posts", "doc", "1")
            .doc(builder);
    

    使用您的客户端发送请求。

    附: es high level client

    【讨论】:

      猜你喜欢
      • 2019-01-22
      • 1970-01-01
      • 2018-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-11
      • 2018-08-25
      • 2020-10-14
      相关资源
      最近更新 更多