Class Scrolling
- java.lang.Object
-
- org.apache.calcite.adapter.elasticsearch.Scrolling
-
class Scrolling extends java.lang.Object
"Iterator" which retrieves results lazily and in batches. Uses Elastic Scrolling API to optimally consume large search results.
This class is not thread safe.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
Scrolling.AutoClosingIterator
Observes when existing iterator has ended and clears context (scroll) if any.private static class
Scrolling.SequentialIterator
Iterator which consumes currentscrollId
until full search result is fetched orlimit
is reached.
-
Field Summary
Fields Modifier and Type Field Description private int
fetchSize
private ElasticsearchTransport
transport
-
Constructor Summary
Constructors Constructor Description Scrolling(ElasticsearchTransport transport)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static java.util.Iterator<ElasticsearchJson.SearchHit>
flatten(java.util.Iterator<ElasticsearchJson.Result> results)
Combines lazily multipleElasticsearchJson.Result
into a single iterator ofElasticsearchJson.SearchHit
.(package private) java.util.Iterator<ElasticsearchJson.SearchHit>
query(com.fasterxml.jackson.databind.node.ObjectNode query)
-
-
-
Field Detail
-
transport
private final ElasticsearchTransport transport
-
fetchSize
private final int fetchSize
-
-
Constructor Detail
-
Scrolling
Scrolling(ElasticsearchTransport transport)
-
-
Method Detail
-
query
java.util.Iterator<ElasticsearchJson.SearchHit> query(com.fasterxml.jackson.databind.node.ObjectNode query)
-
flatten
private static java.util.Iterator<ElasticsearchJson.SearchHit> flatten(java.util.Iterator<ElasticsearchJson.Result> results)
Combines lazily multipleElasticsearchJson.Result
into a single iterator ofElasticsearchJson.SearchHit
.
-
-