Tôi có một ứng dụng còn lại có thể xuất một số dữ liệu báo cáo từ Elasticsearch. Dễ dàng thực hiện với API Java:Elasticsearch có thể truyền trực tuyến SearchResponse không?
SearchResponse response = getClient()
.prepareSearch("my_index_name")
.setQuery(QueryBuilders.someQuery())
.addAggregation(AggregationBuilders.someAggregation())
.get();
Sự cố bắt đầu với phản hồi lớn. Sử dụng đoạn mã này, phản hồi được đọc để xây dựng đối tượng SearchResponse
trong bộ nhớ. Trong trường hợp của tôi, phản hồi không phù hợp với bộ nhớ.
Phân trang không thể trợ giúp vì chúng tôi thường cần trả lại toàn bộ dữ liệu và Tổng hợp do not support paging yet.
Tôi biết rằng tôi có thể sử dụng API REST của Elasticsearch để đọc phản hồi dưới dạng luồng nhưng tự xây dựng yêu cầu đó là cồng kềnh. Tôi thực sự muốn một cái gì đó như thế này:
// my dream API
InputStream response = getClient()
.prepareSearch("my_index_name")
.setQuery(QueryBuilders.someQuery())
.addAggregation(AggregationBuilders.someAggregation())
.getStream();
Vì vậy, API Elasticsearch Java có thể truyền các SearchResponse
?