小编Mik*_*ias的帖子

Elasticsearch可以流式传输SearchResponse吗?

我有一个可以从Elasticsearch导出一些报告数据的休息应用程序.使用Java API很容易:

SearchResponse response = getClient()
            .prepareSearch("my_index_name")
            .setQuery(QueryBuilders.someQuery())
            .addAggregation(AggregationBuilders.someAggregation())
            .get();
Run Code Online (Sandbox Code Playgroud)

问题始于大反应.使用此代码片段,将读取响应以SearchResponse在内存中构建对象.在我的情况下,响应不适合内存.

分页无法帮助,因为我们经常需要返回完整数据,而Aggregations 还不支持分页.

我知道我可以使用Elasticsearch REST API将响应作为流读取,但是手动构建请求会很麻烦.我真的想要这样的东西:

// my dream API
InputStream response = getClient()
            .prepareSearch("my_index_name")
            .setQuery(QueryBuilders.someQuery())
            .addAggregation(AggregationBuilders.someAggregation())
            .getStream();
Run Code Online (Sandbox Code Playgroud)

那么,Elasticsearch Java API流可以SearchResponse吗?

java performance inputstream stream elasticsearch

5
推荐指数
1
解决办法
1555
查看次数

标签 统计

elasticsearch ×1

inputstream ×1

java ×1

performance ×1

stream ×1