【问题标题】:How to update nested elasticsearch value via bulkrequest?如何通过 bulkrequest 更新嵌套的 elasticsearch 值?
【发布时间】:2021-07-09 04:41:36
【问题描述】:

我们使用的是 AWS Elasticsearch - 7.7 版本

我已经关注Update nested field in an index of ElasticSearch with Java API

我有以下 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

【问题讨论】:

    标签: java amazon-web-services elasticsearch java-8 amazon-elasticsearch


    【解决方案1】:

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

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

    【讨论】:

    • 我试过它给出错误java.lang.IllegalArgumentException: The number of object passed must be even but was [1]
    • 你用的是哪个版本的ES?
    • 我们使用的是 AWS Elasticsearch - 7.7 版本。
    猜你喜欢
    • 2022-01-22
    • 2016-12-25
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    相关资源
    最近更新 更多