首页 > 解决方案 > 如何通过 bulkrequest 更新嵌套的 elasticsearch 值?

问题描述

我们正在使用 AWS Elasticsearch - 7.7 版本

我已经在使用 Java API 的 ElasticSearch 索引中关注了更新嵌套字段

我有以下 JSON 弹性搜索

 {
    "_index": "product",
    "_type": "_doc",
    "_source": {
        "id": 1,
        "name": "test",
        "properties": [{
            "id": 1,
            "qty": 10
        }]
    }
}

我有以下代码

 BulkRequest request = new BulkRequest();
 request.add(new UpdateRequest(<ES Endpoint>, 1))
                        .doc(XContentType.JSON, "name", "TEST 1"));
BulkResponse bulkResponse = restClient.bulk(request, RequestOptions.DEFAULT);   

我应该如何更新“属性”值“数量”?

https://www.elastic.co/guide/en/elasticsearch/client/java-api/6.8/java-docs-update.html

标签: javaamazon-web-serviceselasticsearchjava-8amazon-elasticsearch

解决方案


您可以在调用中传递包含所有字段的 Map 以进行更新doc()

Map doc = new HashMap();
doc.put("name", "TEST 1");
doc.put("qty", 12);
request.add(new UpdateRequest("index", 1)
                    .doc(XContentType.JSON, doc));

推荐阅读