Class TopKnnCollector

java.lang.Object
org.apache.lucene.search.AbstractKnnCollector
org.apache.lucene.search.TopKnnCollector
All Implemented Interfaces:
KnnCollector

public final class TopKnnCollector extends AbstractKnnCollector
TopKnnCollector is a specific KnnCollector. A minHeap is used to keep track of the currently collected vectors allowing for efficient updates as better vectors are collected.
WARNING: This API is experimental and might change in incompatible ways in the next release.
  • Constructor Details

    • TopKnnCollector

      public TopKnnCollector(int k, int visitLimit)
      Parameters:
      k - the number of neighbors to collect
      visitLimit - how many vector nodes the results are allowed to visit
  • Method Details

    • collect

      public boolean collect(int docId, float similarity)
      Description copied from interface: KnnCollector
      Collect the provided docId and include in the result set.
      Specified by:
      collect in interface KnnCollector
      Specified by:
      collect in class AbstractKnnCollector
      Parameters:
      docId - of the vector to collect
      similarity - its calculated similarity
      Returns:
      true if the vector is collected
    • minCompetitiveSimilarity

      public float minCompetitiveSimilarity()
      Description copied from interface: KnnCollector
      This method is utilized during search to ensure only competitive results are explored.

      Consequently, if this results collector wants to collect `k` results, this should return Float.NEGATIVE_INFINITY when not full.

      When full, the minimum score should be returned.

      Specified by:
      minCompetitiveSimilarity in interface KnnCollector
      Specified by:
      minCompetitiveSimilarity in class AbstractKnnCollector
      Returns:
      the current minimum competitive similarity in the collection
    • topDocs

      public TopDocs topDocs()
      Description copied from interface: KnnCollector
      This drains the collected nearest kNN results and returns them in a new TopDocs collection, ordered by score descending. NOTE: This is generally a destructive action and the collector should not be used after topDocs() is called.
      Specified by:
      topDocs in interface KnnCollector
      Specified by:
      topDocs in class AbstractKnnCollector
      Returns:
      The collected top documents
    • toString

      public String toString()
      Overrides:
      toString in class Object