public class OrDocumentIterator extends AbstractUnionDocumentIterator implements DocumentIterator
This class adds to AbstractUnionDocumentIterator
an interval iterator generating the OR of the intervals returned for each of the documents involved.
| Modifier and Type | Class and Description |
|---|---|
protected class |
OrDocumentIterator.OrIndexIntervalIterator |
protected class |
OrDocumentIterator.OrIntervalIterator |
AbstractUnionDocumentIterator.IntHeapSemiIndirectPriorityQueue, AbstractUnionDocumentIterator.LongHeapSemiIndirectPriorityQueueAbstractCompositeDocumentIterator.AbstractCompositeIndexIntervalIterator, AbstractCompositeDocumentIterator.AbstractCompositeIntervalIteratorfront, frontSize, queue, refArraydocumentIterator, indexIterator, indexIteratorsWithoutPositions, ncurrentIterators, indices, intervalIterators, soleIndex, soleIntervalIterator, unmodifiableCurrentIteratorscurr, weightEND_OF_LIST| Modifier | Constructor and Description |
|---|---|
protected |
OrDocumentIterator(DocumentIterator... documentIterator) |
| Modifier and Type | Method and Description |
|---|---|
void |
dispose()
Disposes this document iterator, releasing all resources.
|
static DocumentIterator |
getInstance(DocumentIterator... documentIterator)
Returns a document iterator that computes the OR of the given nonzero-length array of iterators.
|
static DocumentIterator |
getInstance(Index index,
DocumentIterator... documentIterator)
Returns a document iterator that computes the OR of the given array of iterators.
|
protected IntervalIterator |
getIntervalIterator(Index index,
int n,
boolean allIndexIterators,
Object unused)
Creates an interval iterator suitable for this
AbstractIntervalDocumentIterator. |
IntervalIterator |
intervalIterator()
Returns the interval iterator of this document iterator for single-index queries.
|
IntervalIterator |
intervalIterator(Index index)
Returns the interval iterator of this document iterator for the given index.
|
acceptOnTruePaths, computeFront, intervalIterators, nextDocument, skipToaccept, toStringallIndexIterators, indices, indicesdocument, ensureOnADocument, mayHaveNext, weight, weightclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitaccept, acceptOnTruePaths, document, indices, intervalIterators, mayHaveNext, nextDocument, skipTo, weight, weightprotected OrDocumentIterator(DocumentIterator... documentIterator) throws IOException
IOExceptionpublic static DocumentIterator getInstance(Index index, DocumentIterator... documentIterator) throws IOException
Note that the special case of the empty and of the singleton arrays are handled efficiently.
index - the default index; relevant only if documentIterator has zero length.documentIterator - the iterators to be joined.documentIterator.IOExceptionpublic static DocumentIterator getInstance(DocumentIterator... documentIterator) throws IOException
Note that the special case of the singleton array is handled efficiently.
documentIterator - the iterators to be joined.documentIterator.IOExceptionprotected IntervalIterator getIntervalIterator(Index index, int n, boolean allIndexIterators, Object unused)
AbstractIntervalDocumentIteratorAbstractIntervalDocumentIterator.getIntervalIterator in class AbstractIntervalDocumentIteratorindex - the reference index for the iterator, or null.n - the number of underlying or component iterators.allIndexIterators - whether all underlying or component iterators are index iterators.unused - an optional argument.AbstractIntervalDocumentIterator.public IntervalIterator intervalIterator() throws IOException
DocumentIteratorThis is a commodity method that can be used only for queries built over a single index.
intervalIterator in interface DocumentIteratorIOExceptionDocumentIterator.intervalIterator(Index)public IntervalIterator intervalIterator(Index index) throws IOException
DocumentIteratorAfter a call to DocumentIterator.nextDocument(), this iterator
can be used to retrieve the intervals in the current document (the
one returned by DocumentIterator.nextDocument()) for
the index index.
Note that if all indices have positions, it is guaranteed that at least one index will return an interval. However, for disjunctive queries it cannot be guaranteed that all indices will return an interval.
Indices without positions always return IntervalIterators.TRUE.
Thus, in presence of indices without positions it is possible that no
intervals at all are available.
intervalIterator in interface DocumentIteratorindex - an index (must be one over which the query was built).index.IOExceptionpublic void dispose()
throws IOException
DocumentIteratorThis method should propagate down to the underlying index iterators, where it should release resources such as open files and network connections. If you're doing your own resource tracking and pooling, then you do not need to call this method.
dispose in interface DocumentIteratordispose in class AbstractCompositeDocumentIteratorIOException