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
AbstractUnionDocumentIterator
an 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 class
OrDocumentIterator.OrIndexIntervalIterator
protected class
OrDocumentIterator.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 protected
OrDocumentIterator(DocumentIterator... documentIterator)
-
Method Summary
Modifier and Type Method Description void
dispose()
Disposes this document iterator, releasing all resources.static DocumentIterator
getInstance(Index index, DocumentIterator... documentIterator)
Returns a document iterator that computes the OR of the given array of iterators.static DocumentIterator
getInstance(DocumentIterator... documentIterator)
Returns a document iterator that computes the OR of the given nonzero-length array of iterators.protected IntervalIterator
getIntervalIterator(Index index, int n, boolean allIndexIterators, Object unused)
Creates an interval iterator suitable for thisAbstractIntervalDocumentIterator
.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.-
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 ifdocumentIterator
has 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:AbstractIntervalDocumentIterator
Creates an interval iterator suitable for thisAbstractIntervalDocumentIterator
.- Specified by:
getIntervalIterator
in 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:DocumentIterator
Returns 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:
intervalIterator
in interfaceDocumentIterator
- Returns:
- an interval iterator.
- Throws:
IOException
- See Also:
DocumentIterator.intervalIterator(Index)
-
intervalIterator
public IntervalIterator intervalIterator(Index index) throws IOException
Description copied from interface:DocumentIterator
Returns 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:
intervalIterator
in 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 IOException
Description copied from interface:DocumentIterator
Disposes 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:
dispose
in interfaceDocumentIterator
- Overrides:
dispose
in classAbstractCompositeDocumentIterator
- Throws:
IOException
-
-