Interface KnnCollector

    • Method Detail

      • earlyTerminated

        boolean earlyTerminated()
        If search visits too many documents, the results collector will terminate early. Usually, this is due to some restricted filter on the document set.

        When collection is earlyTerminated, the results are not a correct representation of k nearest neighbors.

        Returns:
        is the current result set marked as incomplete?
      • incVisitedCount

        void incVisitedCount​(int count)
        Parameters:
        count - increments the visited vector count, must be greater than 0.
      • visitedCount

        long visitedCount()
        Returns:
        the current visited vector count
      • visitLimit

        long visitLimit()
        Returns:
        the visited vector limit
      • k

        int k()
        Returns:
        the expected number of collected results
      • collect

        boolean collect​(int docId,
                        float similarity)
        Collect the provided docId and include in the result set.
        Parameters:
        docId - of the vector to collect
        similarity - its calculated similarity
        Returns:
        true if the vector is collected
      • minCompetitiveSimilarity

        float minCompetitiveSimilarity()
        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.

        Returns:
        the current minimum competitive similarity in the collection
      • topDocs

        TopDocs topDocs()
        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.
        Returns:
        The collected top documents