删除Elasticsearch XContentBuilder.bytes

时间:2019-12-28 00:49:25

标签: elasticsearch elasticsearch-plugin elasticsearch-6 elasticsearch-7

所以,我有以下代码

        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()或以另一种方式释放字节,但我不确定 预先感谢

1 个答案:

答案 0 :(得分: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