Class VectorSimilarityCollector

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

class VectorSimilarityCollector extends AbstractKnnCollector
Perform a similarity-based graph search.
  • Field Details

    • traversalSimilarity

      private final float traversalSimilarity
    • resultSimilarity

      private final float resultSimilarity
    • maxSimilarity

      private float maxSimilarity
    • scoreDocList

      private final List<ScoreDoc> scoreDocList
  • Constructor Details

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

      public int numCollected()
      Specified by:
      numCollected in class AbstractKnnCollector