3131import org .apache .lucene .index .VectorEncoding ;
3232import org .apache .lucene .index .VectorSimilarityFunction ;
3333import org .apache .lucene .search .FieldExistsQuery ;
34+ import org .apache .lucene .search .PatienceKnnVectorQuery ;
3435import org .apache .lucene .search .Query ;
3536import org .apache .lucene .search .join .BitSetProducer ;
3637import org .apache .lucene .util .BitUtil ;
@@ -2198,9 +2199,9 @@ private Query createKnnBitQuery(
21982199 BitSetProducer parentFilter
21992200 ) {
22002201 elementType .checkDimensions (dims , queryVector .length );
2201- Query knnQuery = parentFilter != null
2202+ Query knnQuery = PatienceKnnVectorQuery . fromByteQuery ( parentFilter != null
22022203 ? new ESDiversifyingChildrenByteKnnVectorQuery (name (), queryVector , filter , k , numCands , parentFilter )
2203- : new ESKnnByteVectorQuery (name (), queryVector , k , numCands , filter );
2204+ : new ESKnnByteVectorQuery (name (), queryVector , k , numCands , filter )) ;
22042205 if (similarityThreshold != null ) {
22052206 knnQuery = new VectorSimilarityQuery (
22062207 knnQuery ,
@@ -2225,9 +2226,9 @@ private Query createKnnByteQuery(
22252226 float squaredMagnitude = VectorUtil .dotProduct (queryVector , queryVector );
22262227 elementType .checkVectorMagnitude (similarity , ElementType .errorByteElementsAppender (queryVector ), squaredMagnitude );
22272228 }
2228- Query knnQuery = parentFilter != null
2229+ Query knnQuery = PatienceKnnVectorQuery . fromByteQuery ( parentFilter != null
22292230 ? new ESDiversifyingChildrenByteKnnVectorQuery (name (), queryVector , filter , k , numCands , parentFilter )
2230- : new ESKnnByteVectorQuery (name (), queryVector , k , numCands , filter );
2231+ : new ESKnnByteVectorQuery (name (), queryVector , k , numCands , filter )) ;
22312232 if (similarityThreshold != null ) {
22322233 knnQuery = new VectorSimilarityQuery (
22332234 knnQuery ,
@@ -2278,9 +2279,9 @@ && isNotUnitVector(squaredMagnitude)) {
22782279 adjustedK = Math .min ((int ) Math .ceil (k * oversample ), OVERSAMPLE_LIMIT );
22792280 numCands = Math .max (adjustedK , numCands );
22802281 }
2281- Query knnQuery = parentFilter != null
2282+ Query knnQuery = PatienceKnnVectorQuery . fromFloatQuery ( parentFilter != null
22822283 ? new ESDiversifyingChildrenFloatKnnVectorQuery (name (), queryVector , filter , adjustedK , numCands , parentFilter )
2283- : new ESKnnFloatVectorQuery (name (), queryVector , adjustedK , numCands , filter );
2284+ : new ESKnnFloatVectorQuery (name (), queryVector , adjustedK , numCands , filter )) ;
22842285 if (rescore ) {
22852286 knnQuery = new RescoreKnnVectorQuery (
22862287 name (),
0 commit comments