2121
2222import io .milvus .grpc .*;
2323import io .milvus .param .Constant ;
24- import io .milvus .param .ParamUtils ;
2524import io .milvus .param .collection .FieldType ;
2625import io .milvus .param .dml .QueryIteratorParam ;
27- import io .milvus .param .dml .QueryParam ;
2826import io .milvus .response .QueryResultsWrapper ;
2927import io .milvus .v2 .service .collection .request .CreateCollectionReq ;
3028import io .milvus .v2 .service .vector .request .QueryIteratorReq ;
29+ import io .milvus .v2 .service .vector .request .QueryReq ;
3130import io .milvus .v2 .utils .RpcUtils ;
31+ import io .milvus .v2 .utils .VectorUtils ;
3232import org .apache .commons .lang3 .StringUtils ;
3333import org .slf4j .Logger ;
3434import org .slf4j .LoggerFactory ;
@@ -44,7 +44,7 @@ public class QueryIterator {
4444 private final MilvusServiceGrpc .MilvusServiceBlockingStub blockingStub ;
4545 private final FieldType primaryField ;
4646
47- private final QueryIteratorParam queryIteratorParam ;
47+ private final QueryIteratorReq queryIteratorReq ;
4848 private final int batchSize ;
4949 private final long limit ;
5050 private final String expr ;
@@ -61,7 +61,7 @@ public QueryIterator(QueryIteratorParam queryIteratorParam,
6161 this .iteratorCache = new IteratorCache ();
6262 this .blockingStub = blockingStub ;
6363 this .primaryField = primaryField ;
64- this .queryIteratorParam = queryIteratorParam ;
64+ this .queryIteratorReq = IteratorAdapterV2 . convertV1Param ( queryIteratorParam ) ;
6565
6666 this .batchSize = (int ) queryIteratorParam .getBatchSize ();
6767 this .expr = queryIteratorParam .getExpr ();
@@ -78,15 +78,14 @@ public QueryIterator(QueryIteratorReq queryIteratorReq,
7878 CreateCollectionReq .FieldSchema primaryField ) {
7979 this .iteratorCache = new IteratorCache ();
8080 this .blockingStub = blockingStub ;
81- IteratorAdapterV2 adapter = new IteratorAdapterV2 ();
82- this .queryIteratorParam = adapter .convertV2Req (queryIteratorReq );
83- this .primaryField = adapter .convertV2Field (primaryField );
81+ this .queryIteratorReq = queryIteratorReq ;
82+ this .primaryField = IteratorAdapterV2 .convertV2Field (primaryField );
8483
8584
86- this .batchSize = (int ) queryIteratorParam .getBatchSize ();
87- this .expr = queryIteratorParam .getExpr ();
88- this .limit = queryIteratorParam .getLimit ();
89- this .offset = queryIteratorParam .getOffset ();
85+ this .batchSize = (int ) queryIteratorReq .getBatchSize ();
86+ this .expr = queryIteratorReq .getExpr ();
87+ this .limit = queryIteratorReq .getLimit ();
88+ this .offset = queryIteratorReq .getOffset ();
9089 this .rpcUtils = new RpcUtils ();
9190
9291 setupTsByRequest ();
@@ -208,24 +207,27 @@ private boolean isResSufficient(List<QueryResultsWrapper.RowRecord> ret) {
208207 private QueryResults executeQuery (String expr , long offset , long limit , long ts , boolean isSeek ) {
209208 // for seeking offset, no need to return output fields
210209 List <String > outputFields = new ArrayList <>();
211- boolean reduceStopForBest = queryIteratorParam .isReduceStopForBest ();
210+ boolean reduceStopForBest = queryIteratorReq .isReduceStopForBest ();
212211 if (!isSeek ) {
213- outputFields = queryIteratorParam . getOutFields ();
212+ outputFields = queryIteratorReq . getOutputFields ();
214213 reduceStopForBest = false ;
215214 }
216- QueryParam queryParam = QueryParam .newBuilder ()
217- .withDatabaseName (queryIteratorParam .getDatabaseName ())
218- .withCollectionName (queryIteratorParam .getCollectionName ())
219- .withConsistencyLevel (queryIteratorParam .getConsistencyLevel ())
220- .withPartitionNames (queryIteratorParam .getPartitionNames ())
221- .withOutFields (outputFields )
222- .withExpr (expr )
223- .withOffset (offset )
224- .withLimit (limit )
225- .withIgnoreGrowing (queryIteratorParam .isIgnoreGrowing ())
215+ QueryReq queryReq = QueryReq .builder ()
216+ .databaseName (queryIteratorReq .getDatabaseName ())
217+ .collectionName (queryIteratorReq .getCollectionName ())
218+ .partitionNames (queryIteratorReq .getPartitionNames ())
219+ .consistencyLevel (queryIteratorReq .getConsistencyLevel ())
220+ .outputFields (outputFields )
221+ .filter (expr )
222+ .offset (offset )
223+ .limit (limit )
224+ .ignoreGrowing (queryIteratorReq .isIgnoreGrowing ())
225+ .timezone (queryIteratorReq .getTimezone ())
226+ .filterTemplateValues (queryIteratorReq .getFilterTemplateValues ())
226227 .build ();
227228
228- QueryRequest queryRequest = ParamUtils .convertQueryParam (queryParam );
229+ VectorUtils vectorUtils = new VectorUtils ();
230+ QueryRequest queryRequest = vectorUtils .ConvertToGrpcQueryRequest (queryReq );
229231 QueryRequest .Builder builder = queryRequest .toBuilder ();
230232 // reduce stop for best
231233 builder .addQueryParams (KeyValuePair .newBuilder ()
@@ -246,7 +248,7 @@ private QueryResults executeQuery(String expr, long offset, long limit, long ts,
246248 builder .setUseDefaultConsistency (true );
247249
248250 QueryResults response = rpcUtils .retry (() -> blockingStub .query (builder .build ()));
249- String title = String .format ("QueryRequest collectionName:%s" , queryIteratorParam .getCollectionName ());
251+ String title = String .format ("QueryRequest collectionName:%s" , queryIteratorReq .getCollectionName ());
250252 rpcUtils .handleResponse (title , response .getStatus ());
251253 return response ;
252254 }
0 commit comments