- 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 Summary
Fields Modifier and Type Field Description private float
maxSimilarity
private float
resultSimilarity
private java.util.List<ScoreDoc>
scoreDocList
private float
traversalSimilarity
-
Fields inherited from class org.apache.lucene.search.AbstractKnnCollector
visitedCount
-
-
Constructor Summary
Constructors Constructor Description VectorSimilarityCollector(float traversalSimilarity, float resultSimilarity, long visitLimit)
Perform a similarity-based graph search.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
collect(int docId, float similarity)
Collect the provided docId and include in the result set.float
minCompetitiveSimilarity()
This method is utilized during search to ensure only competitive results are explored.int
numCollected()
TopDocs
topDocs()
This drains the collected nearest kNN results and returns them in a newTopDocs
collection, ordered by score descending.-
Methods inherited from class org.apache.lucene.search.AbstractKnnCollector
earlyTerminated, incVisitedCount, k, visitedCount, visitLimit
-
-
-
-
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 belowtraversalSimilarity
. All traversed nodes aboveresultSimilarity
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 interfaceKnnCollector
- Specified by:
collect
in 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: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 interfaceKnnCollector
- Specified by:
minCompetitiveSimilarity
in classAbstractKnnCollector
- 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 newTopDocs
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 interfaceKnnCollector
- Specified by:
topDocs
in classAbstractKnnCollector
- Returns:
- The collected top documents
-
numCollected
public int numCollected()
- Specified by:
numCollected
in classAbstractKnnCollector
-
-