0

我有以下代码

    TermVectorsResponse resp = request.execute().actionGet();
    XContentBuilder builder = XContentFactory.jsonBuilder();
    resp.toXContent(builder, null);
    Map<String, Object> map = XContentHelper.convertToMap(builder.bytes(), false, XContentType.JSON).v2();
    return map;

我的编译器抱怨,因为它无法解析 XContentBuilder 的方法 bytes()。我的代码适用于 elasticsearch 6.2.2,我知道编译器的错误是因为在 elasticsearch 7.5 中删除了方法 bytes()。所以,我想如何创建map变量,我到处寻找,但没有找到答案。我想我应该创建一个 JsonXContent 并使用它来代替builder.bytes()或以另一种方式检索字节,但我不确定提前谢谢

4

1 回答 1

1

builder.bytes() 就像一种反模式,因此您可以使用以下方法从构建器中获取 BytesReference:

BytesReference.bytes(builder)

7.6 的示例:

https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-high-put-stored-script.html

于 2020-02-21T12:50:40.573 回答