Class AbstractVisitingPrefixTreeFilter.VisitorTemplate
An abstract class designed to make it easy to implement predicates or
other operations on a SpatialPrefixTree indexed field. An instance
of this class is not designed to be re-used across AtomicReaderContext
instances so simply create a new one for each call to, say a
GetDocIdSet(AtomicReaderContext, IBits).
The GetDocIdSet() method here starts the work. It first checks
that there are indexed terms; if not it quickly returns null. Then it calls
Start() so a subclass can set up a return value, like an
FixedBitSet. Then it starts the traversal
process, calling FindSubCellsToVisit(Cell)
which by default finds the top cells that intersect queryShape
. If
there isn't an indexed cell for a corresponding cell returned for this
method then it's short-circuited until it finds one, at which point
Visit(Cell) is called. At
some depths, of the tree, the algorithm switches to a scanning mode that
calls VisitScanned(Cell)
for each leaf cell found.
@lucene.internal
Inheritance
Inherited Members
Assembly: Lucene.Net.Spatial.dll
Syntax
public abstract class VisitorTemplate : AbstractPrefixTreeFilter.BaseTermsEnumTraverser
Constructors
Name | Description |
---|---|
VisitorTemplate(AbstractVisitingPrefixTreeFilter, AtomicReaderContext, IBits, Boolean) |
Fields
Name | Description |
---|---|
m_hasIndexedLeaves |
Methods
Name | Description |
---|---|
FindSubCellsToVisit(Cell) | Called when doing a divide & conquer to find the next intersecting cells
of the query shape that are beneath |
Finish() | Called last to return the result. |
GetDocIdSet() | |
PostSiblings(AbstractVisitingPrefixTreeFilter.VNode) | |
PreSiblings(AbstractVisitingPrefixTreeFilter.VNode) | |
Scan(Int32) | Scans ( |
Start() | Called first to setup things. |
Visit(Cell) | Visit an indexed cell returned from FindSubCellsToVisit(Cell). |
VisitLeaf(Cell) | Called after visit() returns true and an indexed leaf cell is found. |
VisitScanned(Cell) | The cell is either indexed as a leaf or is the last level of detail. It might not even intersect the query shape, so be sure to check for that. |