Class VectorSimilarityCollector

    • Field Detail

      • traversalSimilarity

        private final float traversalSimilarity
      • resultSimilarity

        private final float resultSimilarity
      • maxSimilarity

        private float maxSimilarity
      • scoreDocList

        private final java.util.List<ScoreDoc> scoreDocList
    • Constructor Detail

      • VectorSimilarityCollector

        public VectorSimilarityCollector​(float traversalSimilarity,
                                         float resultSimilarity,
                                         long visitLimit)
        Perform a similarity-based graph search. The graph is traversed till better scoring nodes are available, or the best candidate is below traversalSimilarity. All traversed nodes above resultSimilarity are collected.
        Parameters:
        traversalSimilarity - (lower) similarity score for graph traversal.
        resultSimilarity - (higher) similarity score for result collection.
        visitLimit - limit on number of nodes 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