- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个可以从 Elasticsearch 导出一些报告数据的休息应用程序。使用 Java API 很容易做到:
SearchResponse response = getClient()
.prepareSearch("my_index_name")
.setQuery(QueryBuilders.someQuery())
.addAggregation(AggregationBuilders.someAggregation())
.get();
问题始于大反响。使用此代码片段,读取响应以在内存中构建 SearchResponse
对象。就我而言,响应不适合内存。
分页无济于事,因为我们经常需要返回完整的数据和聚合 do not support paging yet .
我知道我可以使用 Elasticsearch REST API 以流的形式读取响应,但手动构建请求很麻烦。我真的想要这样的东西:
// my dream API
InputStream response = getClient()
.prepareSearch("my_index_name")
.setQuery(QueryBuilders.someQuery())
.addAggregation(AggregationBuilders.someAggregation())
.getStream();
那么,Elasticsearch Java API 可以流式传输 SearchResponse
吗?
最佳答案
A proposal for streaming results确实存在,但到目前为止它似乎还没有起色并被关闭(暂时)。
有一种方法可以用 XContentBuilder
做到这一点但这仍然需要在发送之前将整个响应保存在内存中。
它可能不是您想要的,但这是我所知道的最能满足您需求的东西。值得一试。
关于java - Elasticsearch 可以流式传输 SearchResponse 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28861858/
我要再问同样的问题Convert SearchResponse to JsonObject 实际上我正在使用与此问题中提到的相同的解决方案。但这个解决方案对我不起作用。 下面是我的弹性查询: Aggr
我有一个可以从 Elasticsearch 导出一些报告数据的休息应用程序。使用 Java API 很容易做到: SearchResponse response = getClient()
当我使用@nestjs/elasticsearch 的 ElasticsearchService 时,响应的结果与@types/elasticsearch 的 SearchResponse 类型不匹配
我在 ElasticSearch 中有一个索引。我已经设置了一个 ASP.NET 核心 lambda 无服务器应用程序。我将 IElasticClient 注入(inject)到我的 Controll
我使用 Elastic 6.2、SpringBoot、Java 8。 @RestController @Log4j2 @AllArgsConstructor @RequestMapping("/api
我们如何在列表中添加 Elasticsearch 结果(searchResponse)键和值,而不希望列表中出现重复的键?因为我们想从函数返回一个列表。 for (int i = 0; i
我只是想知道如何从 SearchResponse 中获取字段,这是我的查询结果。 以下是我的查询: {"size":99,"timeout":"10s","query":{"bool":{"filte
我想将 elasticsearch 搜索结果转换为 Json 对象。我还没有找到任何合适的方法来直接转换。 SearchResponse response = client.prepareSearch
我试图通过手动将值传递给构造函数来创建虚拟 SearchResponse 对象。我有一个 JUnit 测试类,我使用这个虚拟值来模拟实际的方法调用。尝试使用以下方法 public SearchResp
我正在尝试使用 ES 作为我的 MongoDB 的索引。我已经成功地集成了它们,但我发现搜索 API 相当复杂和令人困惑。 Java API 也没有太大帮助。 我能够找到完全匹配的结果,但我怎样才能得
Elasticsearch Java 客户端 SearchResponse 无法解析聚合结果。我在网上看到一些文章建议在键前添加聚合类型。我添加了我认为适用于我的用例的内容,例如“sterms# 和
我有一个这样的循环... while (true) { scrollResp = client.prepareSearchScroll(scrollResp.getScrollId()).se
我想模拟一个从命名空间 System.DirectoryServices.Protocols 返回 SearchResponse 对象的方法。我使用最小起订量。我需要创建它的实例。它没有任何构造函数。
我想将一个 json 字符串序列化为一个 Elasticsearch SearchResponse 对象。如果 json 字符串不包含聚合,它工作正常。 如果 json 字符串包含聚合,则 XCont
有没有办法使用 java API 在搜索响应中检索聚合的存储桶? { "took" : 185, "timed_out" : false, "_shards" : { "total
我是一名优秀的程序员,十分优秀!