Skip to content

Commit 823e786

Browse files
authored
Deprecate topK for search/hybridSearch/iterator, replaced with limit (milvus-io#1438)
Signed-off-by: yhmo <yihua.mo@zilliz.com>
1 parent 9224f2f commit 823e786

38 files changed

Lines changed: 249 additions & 106 deletions

examples/src/main/java/io/milvus/v1/BinaryVectorExample.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ public static void main(String[] args) {
157157
R<SearchResults> searchRet = milvusClient.search(SearchParam.newBuilder()
158158
.withCollectionName(COLLECTION_NAME)
159159
.withMetricType(MetricType.HAMMING)
160-
.withTopK(3)
160+
.withLimit(3L)
161161
.withBinaryVectors(Collections.singletonList(targetVector))
162162
.withVectorFieldName(VECTOR_FIELD)
163163
.addOutField(VECTOR_FIELD)

examples/src/main/java/io/milvus/v1/ClientPoolExample.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ public static Thread runSearchThread(MilvusClientV1Pool pool, String clientName,
163163
R<SearchResults> searchRet = client.search(SearchParam.newBuilder()
164164
.withCollectionName(CollectionName)
165165
.withMetricType(MetricType.L2)
166-
.withTopK(10)
166+
.withLimit(10L)
167167
.withFloatVectors(Collections.singletonList(CommonUtils.generateFloatVector(DIM)))
168168
.withVectorFieldName(VectorFieldName)
169169
.withParams("{}")

examples/src/main/java/io/milvus/v1/ConsistencyLevelExample.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ private static List<SearchResultsWrapper.IDScore> search(String collectionName,
137137
.withCollectionName(collectionName)
138138
.withVectorFieldName("vector")
139139
.withFloatVectors(Collections.singletonList(CommonUtils.generateFloatVector(VECTOR_DIM)))
140-
.withTopK(topK)
140+
.withLimit((long)topK)
141141
.withMetricType(MetricType.L2)
142142
.build());
143143
CommonUtils.handleResponseStatus(searchR);
@@ -204,7 +204,7 @@ private static void testSessionLevel() throws ClassNotFoundException, NoSuchMeth
204204
.withCollectionName(collectionName)
205205
.withVectorFieldName("vector")
206206
.withFloatVectors(Collections.singletonList(vector))
207-
.withTopK(1)
207+
.withLimit(1L)
208208
.withMetricType(MetricType.L2)
209209
.build());
210210
pool.returnClient(clientName2, client2); // don't forget to return the client to pool

examples/src/main/java/io/milvus/v1/Float16VectorExample.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ private static void testFloat16(boolean bfloat16) {
184184
SearchParam.Builder builder = SearchParam.newBuilder()
185185
.withCollectionName(COLLECTION_NAME)
186186
.withMetricType(MetricType.L2)
187-
.withTopK(3)
187+
.withLimit(3L)
188188
.withVectorFieldName(VECTOR_FIELD)
189189
.addOutField(VECTOR_FIELD)
190190
.withParams("{\"nprobe\":32}");

examples/src/main/java/io/milvus/v1/GeneralExample.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public class GeneralExample {
6464
private static final IndexType INDEX_TYPE = IndexType.IVF_FLAT;
6565
private static final String INDEX_PARAM = "{\"nlist\":128}";
6666

67-
private static final Integer SEARCH_K = 5;
67+
private static final Long SEARCH_K = 5L;
6868
private static final String SEARCH_PARAM = "{\"nprobe\":10}";
6969

7070

@@ -331,7 +331,7 @@ private R<SearchResults> searchFace(String expr) {
331331
.withCollectionName(COLLECTION_NAME)
332332
.withMetricType(MetricType.L2)
333333
.withOutFields(outFields)
334-
.withTopK(SEARCH_K)
334+
.withLimit(SEARCH_K)
335335
.withFloatVectors(vectors)
336336
.withVectorFieldName(VECTOR_FIELD)
337337
.withExpr(expr)

examples/src/main/java/io/milvus/v1/HybridSearchExample.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -226,30 +226,30 @@ private void hybridSearch() {
226226
.withFloatVectors(CommonUtils.generateFloatVectors(FLOAT_VECTOR_DIM, NQ))
227227
.withMetricType(FLOAT_VECTOR_METRIC)
228228
.withParams("{\"nprobe\": 32}")
229-
.withTopK(10)
229+
.withLimit(10L)
230230
.build();
231231

232232
AnnSearchParam req2 = AnnSearchParam.newBuilder()
233233
.withVectorFieldName(BINARY_VECTOR_FIELD)
234234
.withBinaryVectors(CommonUtils.generateBinaryVectors(BINARY_VECTOR_DIM, NQ))
235235
.withMetricType(BINARY_VECTOR_METRIC)
236-
.withTopK(15)
236+
.withLimit(15L)
237237
.build();
238238

239239
AnnSearchParam req3 = AnnSearchParam.newBuilder()
240240
.withVectorFieldName(FLOAT16_VECTOR_FIELD)
241241
.withFloat16Vectors(CommonUtils.generateFloat16Vectors(FLOAT16_VECTOR_DIM, NQ, false))
242242
.withMetricType(FLOAT16_VECTOR_METRIC)
243243
.withParams("{\"ef\":64}")
244-
.withTopK(20)
244+
.withLimit(20L)
245245
.build();
246246

247247
AnnSearchParam req4 = AnnSearchParam.newBuilder()
248248
.withVectorFieldName(SPARSE_VECTOR_FIELD)
249249
.withSparseFloatVectors(CommonUtils.generateSparseVectors(NQ))
250250
.withMetricType(SPARSE_VECTOR_METRIC)
251251
.withParams("{\"drop_ratio_search\":0.2}")
252-
.withTopK(20)
252+
.withLimit(20L)
253253
.build();
254254

255255
HybridSearchParam searchParam = HybridSearchParam.newBuilder()
@@ -262,7 +262,7 @@ private void hybridSearch() {
262262
.addSearchRequest(req2)
263263
.addSearchRequest(req3)
264264
.addSearchRequest(req4)
265-
.withTopK(5)
265+
.withLimit(5L)
266266
.withConsistencyLevel(ConsistencyLevelEnum.STRONG)
267267
.withRanker(RRFRanker.newBuilder()
268268
.withK(2)

examples/src/main/java/io/milvus/v1/IteratorExample.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -239,16 +239,18 @@ private void searchIteratorCollectionWithLimit() {
239239

240240
private void iterateQueryResult(QueryIterator queryIterator) {
241241
int pageIdx = 0;
242+
int iterateCount = 0;
242243
while (true) {
243244
List<QueryResultsWrapper.RowRecord> res = queryIterator.next();
244245
if (res.isEmpty()) {
245-
System.out.println("query iteration finished, close");
246+
System.out.printf("query iteration finished, %d rows iterated, iterator close\n", iterateCount);
246247
queryIterator.close();
247248
break;
248249
}
249250

250251
for (QueryResultsWrapper.RowRecord re : res) {
251252
System.out.println(re);
253+
iterateCount++;
252254
}
253255
pageIdx++;
254256
System.out.printf("page%s-------------------------%n", pageIdx);
@@ -257,16 +259,18 @@ private void iterateQueryResult(QueryIterator queryIterator) {
257259

258260
private void iterateSearchResult(SearchIterator searchIterator) {
259261
int pageIdx = 0;
262+
int iterateCount = 0;
260263
while (true) {
261264
List<QueryResultsWrapper.RowRecord> res = searchIterator.next();
262265
if (res.isEmpty()) {
263-
System.out.println("search iteration finished, close");
266+
System.out.printf("search iteration finished, %d rows iterated, iterator close\n", iterateCount);
264267
searchIterator.close();
265268
break;
266269
}
267270

268271
for (QueryResultsWrapper.RowRecord re : res) {
269272
System.out.println(re);
273+
iterateCount++;
270274
}
271275
pageIdx++;
272276
System.out.printf("page%s-------------------------%n", pageIdx);
@@ -302,7 +306,7 @@ private SearchIterator getSearchIterator(List<List<Float>> vectors, Long batchSi
302306
.withMetricType(MetricType.L2);
303307

304308
if (topK != null) {
305-
searchIteratorParamBuilder.withTopK(topK);
309+
searchIteratorParamBuilder.withLimit(topK.longValue());
306310
}
307311

308312
R<SearchIterator> response = milvusClient.searchIterator(searchIteratorParamBuilder.build());

examples/src/main/java/io/milvus/v1/SimpleExample.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,8 @@ public static void main(String[] args) {
144144
R<SearchResults> searchRet = milvusClient.search(SearchParam.newBuilder()
145145
.withCollectionName(COLLECTION_NAME)
146146
.withMetricType(MetricType.L2)
147-
.withTopK(5)
148-
.withFloatVectors(Arrays.asList(vector))
147+
.withLimit(5L)
148+
.withFloatVectors(Collections.singletonList(vector))
149149
.withVectorFieldName(VECTOR_FIELD)
150150
.withParams("{}")
151151
.addOutField(VECTOR_FIELD)

examples/src/main/java/io/milvus/v1/SparseVectorExample.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ public static void main(String[] args) {
153153
R<SearchResults> searchRet = milvusClient.search(SearchParam.newBuilder()
154154
.withCollectionName(COLLECTION_NAME)
155155
.withMetricType(MetricType.IP)
156-
.withTopK(3)
156+
.withLimit(3L)
157157
.withSparseFloatVectors(Collections.singletonList(targetVector))
158158
.withVectorFieldName(VECTOR_FIELD)
159159
.addOutField(VECTOR_FIELD)

examples/src/main/java/io/milvus/v2/BinaryVectorExample.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ public static void main(String[] args) {
136136
.annsField(VECTOR_FIELD)
137137
.outputFields(Collections.singletonList(VECTOR_FIELD))
138138
.searchParams(params)
139-
.topK(3)
139+
.limit(3)
140140
.build());
141141

142142
// The search() allows multiple target vectors to search in a batch.

0 commit comments

Comments
 (0)