mirror of
https://gitee.com/milvus-io/milvus.git
synced 2026-01-07 19:31:51 +08:00
enhance: Make hasMoreResult accurate when hit number larger than limit (#33609)
See also milvus-io/milvus-sdk-go#756 Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
This commit is contained in:
parent
4ec7cbcae7
commit
597f4c5e03
@ -259,6 +259,7 @@ class OffsetOrderedArray : public OffsetMap {
|
||||
if (!false_filtered_out) {
|
||||
cnt = size - bitset.count();
|
||||
}
|
||||
auto more_hit_than_limit = cnt > limit;
|
||||
limit = std::min(limit, cnt);
|
||||
std::vector<int64_t> seg_offsets;
|
||||
seg_offsets.reserve(limit);
|
||||
@ -275,7 +276,7 @@ class OffsetOrderedArray : public OffsetMap {
|
||||
hit_num++;
|
||||
}
|
||||
}
|
||||
return {seg_offsets, it != array_.end()};
|
||||
return {seg_offsets, more_hit_than_limit && it != array_.end()};
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@ -130,10 +130,10 @@ TYPED_TEST_P(TypedOffsetOrderedArrayTest, find_first) {
|
||||
none.reset();
|
||||
auto result_pair = this->map_.find_first(num / 2, none, true);
|
||||
ASSERT_EQ(0, result_pair.first.size());
|
||||
ASSERT_TRUE(result_pair.second);
|
||||
ASSERT_FALSE(result_pair.second);
|
||||
result_pair = this->map_.find_first(NoLimit, none, true);
|
||||
ASSERT_EQ(0, result_pair.first.size());
|
||||
ASSERT_TRUE(result_pair.second);
|
||||
ASSERT_FALSE(result_pair.second);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user