Package org.nuxeo.elasticsearch.api
Class EsIterableQueryResultImpl
- java.lang.Object
-
- org.nuxeo.elasticsearch.api.EsIterableQueryResultImpl
-
- All Implemented Interfaces:
Closeable,AutoCloseable,Iterable<Map<String,Serializable>>,Iterator<Map<String,Serializable>>,IterableQueryResult
public class EsIterableQueryResultImpl extends Object implements IterableQueryResult, Iterator<Map<String,Serializable>>
Iterable query result of results of an ElasticSearch scroll query and next ones.Queries ElasticSearch when there's no more result in current response and there's more in cluster.
For better performance use
NxQueryBuilder.onlyElasticsearchResponse()for the first scroll requests.- Since:
- 8.4
-
-
Constructor Summary
Constructors Constructor Description EsIterableQueryResultImpl(ElasticSearchService searchService, EsScrollResult scrollResult)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Closes the query result and releases the underlying resources held by the cursor.booleanhasNext()booleanisLife()Indicates if the query result has not been closedIterator<Map<String,Serializable>>iterator()booleanmustBeClosed()Indicates if the query result must be closed (because it holds resources).Map<String,Serializable>next()longpos()Gets the current position in the iterator.longsize()Gets the total size of the query result.voidskipTo(long pos)Skips to a given position in the iterator.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Methods inherited from interface java.util.Iterator
forEachRemaining, remove
-
-
-
-
Constructor Detail
-
EsIterableQueryResultImpl
public EsIterableQueryResultImpl(ElasticSearchService searchService, EsScrollResult scrollResult)
-
-
Method Detail
-
close
public void close()
Description copied from interface:IterableQueryResultCloses the query result and releases the underlying resources held by the cursor.This MUST be called when the query result is no more needed, otherwise underlying resources will be leaked. There is no auto-closing at the end of the iteration.
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceIterableQueryResult
-
isLife
public boolean isLife()
Description copied from interface:IterableQueryResultIndicates if the query result has not been closed- Specified by:
isLifein interfaceIterableQueryResult
-
mustBeClosed
public boolean mustBeClosed()
Description copied from interface:IterableQueryResultIndicates if the query result must be closed (because it holds resources).- Specified by:
mustBeClosedin interfaceIterableQueryResult- Returns:
trueif the query result must be closed,falseotherwise
-
size
public long size()
Description copied from interface:IterableQueryResultGets the total size of the query result.Note that this may be costly, and that some backends may not be able to do this operation, in which case
-1will be returned.- Specified by:
sizein interfaceIterableQueryResult- Returns:
- the size, or
-1for an unknown size
-
pos
public long pos()
Description copied from interface:IterableQueryResultGets the current position in the iterator.Positions start at
0.- Specified by:
posin interfaceIterableQueryResult- Returns:
- the position
-
skipTo
public void skipTo(long pos)
Description copied from interface:IterableQueryResultSkips to a given position in the iterator.Positions start at
0.- Specified by:
skipToin interfaceIterableQueryResult
-
iterator
public Iterator<Map<String,Serializable>> iterator()
- Specified by:
iteratorin interfaceIterable<Map<String,Serializable>>
-
hasNext
public boolean hasNext()
- Specified by:
hasNextin interfaceIterator<Map<String,Serializable>>
-
next
public Map<String,Serializable> next()
- Specified by:
nextin interfaceIterator<Map<String,Serializable>>
-
-