Skip to content

Commit 9201720

Browse files
authored
Add topks in searchResult (milvus-io#581)
Signed-off-by: fishpenguin <[email protected]>
1 parent 603c4d8 commit 9201720

File tree

4 files changed

+31
-12
lines changed

4 files changed

+31
-12
lines changed

grpc-proto/gen/schema_pb2.py

+11-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

grpc-proto/schema.proto

+1
Original file line numberDiff line numberDiff line change
@@ -120,4 +120,5 @@ message SearchResultData {
120120
repeated FieldData fields_data = 3;
121121
repeated float scores = 4;
122122
IDs ids = 5;
123+
repeated int64 topks = 6;
123124
}

pymilvus/client/abstract.py

+8-4
Original file line numberDiff line numberDiff line change
@@ -355,10 +355,11 @@ def _pack(self, raw):
355355
self._nq = raw.results.num_queries
356356
self._topk = raw.results.top_k
357357
self._hits = []
358+
offset = 0
358359
for i in range(self._nq):
359360
hit = schema_pb2.SearchResultData()
360-
start_pos = i * self._topk
361-
end_pos = (i + 1) * self._topk
361+
start_pos = offset
362+
end_pos = offset + raw.results.topks[i]
362363
hit.scores.append(raw.results.scores[start_pos: end_pos])
363364
hit.ids.append(raw.results.ids.int_id.data[start_pos: end_pos])
364365
for field_data in raw.result.fields_data:
@@ -385,6 +386,7 @@ def _pack(self, raw):
385386
field_data.vectors.float_data.data[start_pos * dim: end_pos * dim])
386387
hit.fields_data.append(field)
387388
self._hits.append(hit)
389+
offset += raw.results.topks[i]
388390

389391
def get__item(self, item):
390392
return Hits(self._hits[item], self._auto_id)
@@ -411,10 +413,11 @@ def _pack(self, raw_list):
411413
nq = raw.results.num_queries
412414
self._nq += nq
413415
self._topk = raw.results.top_k
416+
offset = 0
414417
for i in range(nq):
415418
hit = schema_pb2.SearchResultData()
416-
start_pos = i * self._topk
417-
end_pos = (i + 1) * self._topk
419+
start_pos = offset
420+
end_pos = offset + raw.results.topks[i]
418421
hit.scores.extend(raw.results.scores[start_pos: end_pos])
419422
hit.ids.int_id.data.extend(raw.results.ids.int_id.data[start_pos: end_pos])
420423
for field_data in raw.results.fields_data:
@@ -441,6 +444,7 @@ def _pack(self, raw_list):
441444
start_pos * dim: end_pos * dim])
442445
hit.fields_data.append(field)
443446
self._hits.append(hit)
447+
offset += raw.result.topks[i]
444448

445449
def get__item(self, item):
446450
return Hits(self._hits[item], self._auto_id)

pymilvus/grpc_gen/schema_pb2.py

+11-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)