PointValues.IntersectVisitor (Lucene 10.5.0 core API)
Description: declaration: package: org.apache.lucene.index, class: PointValues, interface: IntersectVisitor

Package org.apache.lucene.index

# Interface PointValues.IntersectVisitor

All Known Implementing Classes:
  `CheckIndex.VerifyPointsVisitor`

Enclosing class:
  `PointValues`

public static interface PointValues.IntersectVisitor
We recurse the `PointValues.PointTree`, using a provided instance of this to guide the recursion.

WARNING: This API is experimental and might change in incompatible ways in the next release.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `PointValues.Relation`
  `compare(byte[] minPackedValue, byte[] maxPackedValue)`
  Called for non-leaf cells to test how the cell relates to the query, to determine how to further recurse down the tree.
  `default void`
  `grow(int count)`
  Notifies the caller that this many documents are about to be visited
  `void`
  `visit(int docID)`
  Called for all documents in a leaf cell that's fully contained by the query.
  `void`
  `visit(int docID, byte[] packedValue)`
  Called for all documents in a leaf cell that crosses the query.
  `default void`
  `visit(DocIdSetIterator iterator)`
  Similar to `visit(int)`, but a bulk visit and implementations may have their optimizations.
  `default void`
  `visit(DocIdSetIterator iterator, byte[] packedValue)`
  Similar to `visit(int, byte[])` but in this case the packedValue can have more than one docID associated to it.
  `default void`
  `visit(IntsRef ref)`
  Similar to `visit(int)`, but a bulk visit and implements may have their optimizations.

- ## Method Details

  - ### visit

    void visit(int docID) throws IOException
    Called for all documents in a leaf cell that's fully contained by the query. The consumer should blindly accept the docID.
    Throws:
      `IOException`

  - ### visit

    default void visit(DocIdSetIterator iterator) throws IOException
    Similar to `visit(int)`, but a bulk visit and implementations may have their optimizations.

    It is guaranteed that the given iterator is not positioned;

    Throws:
      `IOException`

  - ### visit

    default void visit(IntsRef ref) throws IOException
    Similar to `visit(int)`, but a bulk visit and implements may have their optimizations. Even if the implementation does the same thing this method, this may be a speed improvement due to fewer virtual calls.
    Throws:
      `IOException`

  - ### visit

    void visit(int docID, byte[] packedValue) throws IOException
    Called for all documents in a leaf cell that crosses the query. The consumer should scrutinize the packedValue to decide whether to accept it. In the 1D case, values are visited in increasing order, and in the case of ties, in increasing docID order.
    Throws:
      `IOException`

  - ### visit

    default void visit(DocIdSetIterator iterator, byte[] packedValue) throws IOException
    Similar to `visit(int, byte[])` but in this case the packedValue can have more than one docID associated to it. The provided iterator should not escape the scope of this method so that implementations of PointValues are free to reuse it,
    Throws:
      `IOException`

  - ### compare

    PointValues.Relation compare(byte[] minPackedValue, byte[] maxPackedValue)
    Called for non-leaf cells to test how the cell relates to the query, to determine how to further recurse down the tree.

  - ### grow

    default void grow(int count)
    Notifies the caller that this many documents are about to be visited