- java.lang.Object
-
- org.apache.lucene.search.Query
-
- org.apache.lucene.search.AbstractVectorSimilarityQuery
-
- Direct Known Subclasses:
ByteVectorSimilarityQuery
,FloatVectorSimilarityQuery
abstract class AbstractVectorSimilarityQuery extends Query
Search for all (approximate) vectors above a similarity threshold.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
AbstractVectorSimilarityQuery.VectorSimilarityScorer
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.String
field
protected Query
filter
protected float
resultSimilarity
protected float
traversalSimilarity
-
Constructor Summary
Constructors Constructor Description AbstractVectorSimilarityQuery(java.lang.String field, float traversalSimilarity, float resultSimilarity, Query filter)
Search for all (approximate) vectors above a similarity threshold usingVectorSimilarityCollector
.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract TopDocs
approximateSearch(LeafReaderContext context, Bits acceptDocs, int visitLimit)
(package private) abstract VectorScorer
createVectorScorer(LeafReaderContext context)
Weight
createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost)
Expert: Constructs an appropriate Weight implementation for this query.boolean
equals(java.lang.Object o)
Override and implement query instance equivalence properly in a subclass.int
hashCode()
Override and implement query hash code properly in a subclass.void
visit(QueryVisitor visitor)
Recurse through the query tree, visiting any child queries.
-
-
-
Field Detail
-
field
protected final java.lang.String field
-
traversalSimilarity
protected final float traversalSimilarity
-
resultSimilarity
protected final float resultSimilarity
-
filter
protected final Query filter
-
-
Constructor Detail
-
AbstractVectorSimilarityQuery
AbstractVectorSimilarityQuery(java.lang.String field, float traversalSimilarity, float resultSimilarity, Query filter)
Search for all (approximate) vectors above a similarity threshold usingVectorSimilarityCollector
. If a filter is applied, it traverses as many nodes as the cost of the filter, and then falls back to exact search if results are incomplete.- Parameters:
field
- a field that has been indexed as a vector field.traversalSimilarity
- (lower) similarity score for graph traversal.resultSimilarity
- (higher) similarity score for result collection.filter
- a filter applied before the vector search.
-
-
Method Detail
-
createVectorScorer
abstract VectorScorer createVectorScorer(LeafReaderContext context) throws java.io.IOException
- Throws:
java.io.IOException
-
approximateSearch
protected abstract TopDocs approximateSearch(LeafReaderContext context, Bits acceptDocs, int visitLimit) throws java.io.IOException
- Throws:
java.io.IOException
-
createWeight
public Weight createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost) throws java.io.IOException
Description copied from class:Query
Expert: Constructs an appropriate Weight implementation for this query.Only implemented by primitive queries, which re-write to themselves.
- Overrides:
createWeight
in classQuery
scoreMode
- How the produced scorers will be consumed.boost
- The boost that is propagated by the parent queries.- Throws:
java.io.IOException
-
visit
public void visit(QueryVisitor visitor)
Description copied from class:Query
Recurse through the query tree, visiting any child queries.
-
equals
public boolean equals(java.lang.Object o)
Description copied from class:Query
Override and implement query instance equivalence properly in a subclass. This is required so thatQueryCache
works properly.Typically a query will be equal to another only if it's an instance of the same class and its document-filtering properties are identical to those of the other instance. Utility methods are provided for certain repetitive code.
- Specified by:
equals
in classQuery
- See Also:
Query.sameClassAs(Object)
,Query.classHash()
-
hashCode
public int hashCode()
Description copied from class:Query
Override and implement query hash code properly in a subclass. This is required so thatQueryCache
works properly.- Specified by:
hashCode
in classQuery
- See Also:
Query.equals(Object)
-
-