Class TopKnnCollector

  • All Implemented Interfaces:
    KnnCollector
    Direct Known Subclasses:
    MultiLeafTopKnnCollector

    public 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 Detail

      • 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 Detail

      • 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