Class KnnVectorQuery


  • @Deprecated
    public class KnnVectorQuery
    extends KnnFloatVectorQuery
    Deprecated.
    Uses KnnVectorsReader.search(String, float[], int, Bits, int) to perform nearest neighbour search.

    This query also allows for performing a kNN search subject to a filter. In this case, it first executes the filter for each leaf, then chooses a strategy dynamically:

    • If the filter cost is less than k, just execute an exact search
    • Otherwise run a kNN search subject to the filter
    • If the kNN search visits too many vectors without completing, stop and run an exact search
    • Field Detail

      • field

        protected final String field
      • k

        protected final int k
    • Constructor Detail

      • KnnVectorQuery

        public KnnVectorQuery​(String field,
                              float[] target,
                              int k)
        Deprecated.
      • KnnVectorQuery

        public KnnVectorQuery​(String field,
                              float[] target,
                              int k,
                              Query filter)
        Deprecated.
    • Method Detail

      • rewrite

        public Query rewrite​(IndexReader reader)
                      throws IOException
        Description copied from class: Query
        Expert: called to re-write queries into primitive queries. For example, a PrefixQuery will be rewritten into a BooleanQuery that consists of TermQuerys.

        Callers are expected to call rewrite multiple times if necessary, until the rewritten query is the same as the original query.

        Overrides:
        rewrite in class Query
        Throws:
        IOException
        See Also:
        IndexSearcher.rewrite(Query)
      • 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
      • getField

        public String getField()
        Returns:
        the knn vector field where the knn vector search happens.
      • getK

        public int getK()
        Returns:
        the max number of results the KnnVector search returns.
      • getFilter

        public Query getFilter()
        Returns:
        the filter that is executed before the KnnVector search happens. Only the results accepted by this filter are returned by the KnnVector search.