Package org.apache.lucene.search

# Class ByteVectorSimilarityQuery

java.lang.Object
org.apache.lucene.search.Query
org.apache.lucene.search.ByteVectorSimilarityQuery

public class ByteVectorSimilarityQuery extends Query
Search for all (approximate) byte vectors above a similarity threshold.

WARNING: This API is experimental and might change in incompatible ways in the next release.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final String`
`field`
`protected final Query`
`filter`
`protected final float`
`resultSimilarity`
`protected final float`
`traversalSimilarity`

## Constructor Summary

Constructors
Constructor
Description
`ByteVectorSimilarityQuery(String field, byte[] target, float resultSimilarity)`
Search for all (approximate) byte vectors above a similarity threshold using `VectorSimilarityCollector`.
`ByteVectorSimilarityQuery(String field, byte[] target, float traversalSimilarity, float resultSimilarity)`
Search for all (approximate) byte vectors above a similarity threshold using `VectorSimilarityCollector`.
`ByteVectorSimilarityQuery(String field, byte[] target, float traversalSimilarity, float resultSimilarity, Query filter)`
Search for all (approximate) byte vectors above a similarity threshold using `VectorSimilarityCollector`.
`ByteVectorSimilarityQuery(String field, byte[] target, float resultSimilarity, Query filter)`
Search for all (approximate) byte vectors above a similarity threshold using `VectorSimilarityCollector`.

## Method Summary

Modifier and Type
Method
Description
`protected TopDocs`
`approximateSearch(LeafReaderContext context, Bits acceptDocs, int visitLimit, KnnCollectorManager knnCollectorManager)`
`Weight`
`createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost)`
Expert: Constructs an appropriate Weight implementation for this query.
`boolean`
`equals(Object o)`
Override and implement query instance equivalence properly in a subclass.
`protected KnnCollectorManager`
`getKnnCollectorManager()`
`int`
`hashCode()`
Override and implement query hash code properly in a subclass.
`String`
`toString(String field)`
Prints a query to a string, with `field` assumed to be the default field and omitted.
`void`
`visit(QueryVisitor visitor)`
Recurse through the query tree, visiting any child queries.

### Methods inherited from class org.apache.lucene.search.Query

`classHash, rewrite, sameClassAs, toString`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

## Field Details

### field

protected final String field

### traversalSimilarity

protected final float traversalSimilarity

### resultSimilarity

protected final float resultSimilarity

### filter

protected final Query filter

## Constructor Details

### ByteVectorSimilarityQuery

public ByteVectorSimilarityQuery(String field, byte[] target, float traversalSimilarity, float resultSimilarity, Query filter)
Search for all (approximate) byte vectors above a similarity threshold using `VectorSimilarityCollector`. 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 `KnnByteVectorField`.
  `target` - the target of the search.
  `traversalSimilarity` - (lower) similarity score for graph traversal.
  `resultSimilarity` - (higher) similarity score for result collection.
  `filter` - a filter applied before the vector search.

### ByteVectorSimilarityQuery

public ByteVectorSimilarityQuery(String field, byte[] target, float traversalSimilarity, float resultSimilarity)
Search for all (approximate) byte vectors above a similarity threshold using `VectorSimilarityCollector`.

Parameters:
  `field` - a field that has been indexed as a `KnnByteVectorField`.
  `target` - the target of the search.
  `traversalSimilarity` - (lower) similarity score for graph traversal.
  `resultSimilarity` - (higher) similarity score for result collection.

### ByteVectorSimilarityQuery

public ByteVectorSimilarityQuery(String field, byte[] target, float resultSimilarity, Query filter)
Search for all (approximate) byte vectors above a similarity threshold using `VectorSimilarityCollector`. 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 `KnnByteVectorField`.
  `target` - the target of the search.
  `resultSimilarity` - similarity score for result collection.
  `filter` - a filter applied before the vector search.

### ByteVectorSimilarityQuery

public ByteVectorSimilarityQuery(String field, byte[] target, float resultSimilarity)
Search for all (approximate) byte vectors above a similarity threshold using `VectorSimilarityCollector`.

Parameters:
  `field` - a field that has been indexed as a `KnnByteVectorField`.
  `target` - the target of the search.
  `resultSimilarity` - similarity score for result collection.

## Method Details

### approximateSearch

protected TopDocs approximateSearch(LeafReaderContext context, Bits acceptDocs, int visitLimit, KnnCollectorManager knnCollectorManager) throws IOException

Throws:
  `IOException`

### toString

public String toString(String field)
Description copied from class: `Query`
Prints a query to a string, with `field` assumed to be the default field and omitted.

Specified by:
  `toString` in class `Query`

### equals

public boolean equals(Object o)
Description copied from class: `Query`
Override and implement query instance equivalence properly in a subclass. This is required so that `QueryCache` 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.

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 that `QueryCache` works properly.

See Also:
  - `Query.equals(Object)`

### getKnnCollectorManager

protected KnnCollectorManager getKnnCollectorManager()

### createWeight

public Weight createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost) throws 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 class `Query`
Parameters:
  `scoreMode` - How the produced scorers will be consumed.
  `boost` - The boost that is propagated by the parent queries.
Throws:
  `IOException`

### visit

public void visit(QueryVisitor visitor)
Description copied from class: `Query`
Recurse through the query tree, visiting any child queries.

Specified by:
  `visit` in class `Query`
Parameters:
  `visitor` - a QueryVisitor to be called by each query in the tree