java.lang.Object
org.apache.lucene.search.AbstractKnnCollector
org.apache.lucene.search.VectorSimilarityCollector
- All Implemented Interfaces:
KnnCollector
Perform a similarity-based graph search.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate floatprivate final floatprivate final floatFields inherited from class org.apache.lucene.search.AbstractKnnCollector
visitedCount -
Constructor Summary
ConstructorsConstructorDescriptionVectorSimilarityCollector(float traversalSimilarity, float resultSimilarity, long visitLimit) Perform a similarity-based graph search. -
Method Summary
Modifier and TypeMethodDescriptionbooleancollect(int docId, float similarity) Collect the provided docId and include in the result set.floatThis method is utilized during search to ensure only competitive results are explored.inttopDocs()This drains the collected nearest kNN results and returns them in a newTopDocscollection, ordered by score descending.Methods inherited from class org.apache.lucene.search.AbstractKnnCollector
earlyTerminated, incVisitedCount, k, visitedCount, visitLimit
-
Field Details
-
traversalSimilarity
private final float traversalSimilarity -
resultSimilarity
private final float resultSimilarity -
maxSimilarity
private float maxSimilarity -
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 belowtraversalSimilarity. All traversed nodes aboveresultSimilarityare 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:KnnCollectorCollect the provided docId and include in the result set.- Specified by:
collectin interfaceKnnCollector- Specified by:
collectin classAbstractKnnCollector- Parameters:
docId- of the vector to collectsimilarity- its calculated similarity- Returns:
- true if the vector is collected
-
minCompetitiveSimilarity
public float minCompetitiveSimilarity()Description copied from interface:KnnCollectorThis 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_INFINITYwhen not full.When full, the minimum score should be returned.
- Specified by:
minCompetitiveSimilarityin interfaceKnnCollector- Specified by:
minCompetitiveSimilarityin classAbstractKnnCollector- Returns:
- the current minimum competitive similarity in the collection
-
topDocs
Description copied from interface:KnnCollectorThis drains the collected nearest kNN results and returns them in a newTopDocscollection, ordered by score descending. NOTE: This is generally a destructive action and the collector should not be used after topDocs() is called.- Specified by:
topDocsin interfaceKnnCollector- Specified by:
topDocsin classAbstractKnnCollector- Returns:
- The collected top documents
-
numCollected
public int numCollected()- Specified by:
numCollectedin classAbstractKnnCollector
-