Class OrDocumentIterator
-
- All Implemented Interfaces:
DocumentIterator
public class OrDocumentIterator extends AbstractUnionDocumentIterator implements DocumentIterator
An iterator on documents that returns the OR of a number of document iterators.This class adds to
AbstractUnionDocumentIteratoran interval iterator generating the OR of the intervals returned for each of the documents involved.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classOrDocumentIterator.OrIndexIntervalIteratorprotected classOrDocumentIterator.OrIntervalIterator-
Nested classes/interfaces inherited from class it.unimi.di.big.mg4j.search.AbstractUnionDocumentIterator
AbstractUnionDocumentIterator.IntHeapSemiIndirectPriorityQueue, AbstractUnionDocumentIterator.LongHeapSemiIndirectPriorityQueue
-
Nested classes/interfaces inherited from class it.unimi.di.big.mg4j.search.AbstractCompositeDocumentIterator
AbstractCompositeDocumentIterator.AbstractCompositeIndexIntervalIterator, AbstractCompositeDocumentIterator.AbstractCompositeIntervalIterator
-
-
Field Summary
-
Fields inherited from class it.unimi.di.big.mg4j.search.AbstractUnionDocumentIterator
front, frontSize, queue, refArray
-
Fields inherited from class it.unimi.di.big.mg4j.search.AbstractCompositeDocumentIterator
documentIterator, indexIterator, indexIteratorsWithoutPositions, n
-
Fields inherited from class it.unimi.di.big.mg4j.search.AbstractIntervalDocumentIterator
currentIterators, indices, intervalIterators, soleIndex, soleIntervalIterator, unmodifiableCurrentIterators
-
Fields inherited from class it.unimi.di.big.mg4j.search.AbstractDocumentIterator
curr, weight
-
Fields inherited from interface it.unimi.di.big.mg4j.search.DocumentIterator
END_OF_LIST
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedOrDocumentIterator(DocumentIterator... documentIterator)
-
Method Summary
Modifier and Type Method Description voiddispose()Disposes this document iterator, releasing all resources.static DocumentIteratorgetInstance(Index index, DocumentIterator... documentIterator)Returns a document iterator that computes the OR of the given array of iterators.static DocumentIteratorgetInstance(DocumentIterator... documentIterator)Returns a document iterator that computes the OR of the given nonzero-length array of iterators.protected IntervalIteratorgetIntervalIterator(Index index, int n, boolean allIndexIterators, Object unused)Creates an interval iterator suitable for thisAbstractIntervalDocumentIterator.IntervalIteratorintervalIterator()Returns the interval iterator of this document iterator for single-index queries.IntervalIteratorintervalIterator(Index index)Returns the interval iterator of this document iterator for the given index.-
Methods inherited from class it.unimi.di.big.mg4j.search.AbstractUnionDocumentIterator
acceptOnTruePaths, computeFront, intervalIterators, nextDocument, skipTo
-
Methods inherited from class it.unimi.di.big.mg4j.search.AbstractCompositeDocumentIterator
accept, toString
-
Methods inherited from class it.unimi.di.big.mg4j.search.AbstractIntervalDocumentIterator
allIndexIterators, indices, indices
-
Methods inherited from class it.unimi.di.big.mg4j.search.AbstractDocumentIterator
document, ensureOnADocument, mayHaveNext, weight, weight
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface it.unimi.di.big.mg4j.search.DocumentIterator
accept, acceptOnTruePaths, document, indices, intervalIterators, mayHaveNext, nextDocument, skipTo, weight, weight
-
-
-
-
Constructor Detail
-
OrDocumentIterator
protected OrDocumentIterator(DocumentIterator... documentIterator)
-
-
Method Detail
-
getInstance
public static DocumentIterator getInstance(Index index, DocumentIterator... documentIterator)
Returns a document iterator that computes the OR of the given array of iterators.Note that the special case of the empty and of the singleton arrays are handled efficiently.
- Parameters:
index- the default index; relevant only ifdocumentIteratorhas zero length.documentIterator- the iterators to be joined.- Returns:
- a document iterator that computes the OR of
documentIterator.
-
getInstance
public static DocumentIterator getInstance(DocumentIterator... documentIterator)
Returns a document iterator that computes the OR of the given nonzero-length array of iterators.Note that the special case of the singleton array is handled efficiently.
- Parameters:
documentIterator- the iterators to be joined.- Returns:
- a document iterator that computes the OR of
documentIterator.
-
getIntervalIterator
protected IntervalIterator getIntervalIterator(Index index, int n, boolean allIndexIterators, Object unused)
Description copied from class:AbstractIntervalDocumentIteratorCreates an interval iterator suitable for thisAbstractIntervalDocumentIterator.- Specified by:
getIntervalIteratorin classAbstractIntervalDocumentIterator- Parameters:
index- the reference index for the iterator, ornull.n- the number of underlying or component iterators.allIndexIterators- whether all underlying or component iterators are index iterators.unused- an optional argument.- Returns:
- an interval iterator suitable for this
AbstractIntervalDocumentIterator.
-
intervalIterator
public IntervalIterator intervalIterator() throws IOException
Description copied from interface:DocumentIteratorReturns the interval iterator of this document iterator for single-index queries.This is a commodity method that can be used only for queries built over a single index.
- Specified by:
intervalIteratorin interfaceDocumentIterator- Returns:
- an interval iterator.
- Throws:
IOException- See Also:
DocumentIterator.intervalIterator(Index)
-
intervalIterator
public IntervalIterator intervalIterator(Index index) throws IOException
Description copied from interface:DocumentIteratorReturns the interval iterator of this document iterator for the given index.After a call to
DocumentIterator.nextDocument(), this iterator can be used to retrieve the intervals in the current document (the one returned byDocumentIterator.nextDocument()) for the indexindex.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.- Specified by:
intervalIteratorin interfaceDocumentIterator- Parameters:
index- an index (must be one over which the query was built).- Returns:
- an interval iterator over the current document in
index. - Throws:
IOException
-
dispose
public void dispose() throws IOExceptionDescription copied from interface:DocumentIteratorDisposes this document iterator, releasing all resources.This 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.
- Specified by:
disposein interfaceDocumentIterator- Overrides:
disposein classAbstractCompositeDocumentIterator- Throws:
IOException
-
-