Commit 134f84d2 authored by groot's avatar groot
Browse files

#59 Topk result is incorrect for small dataset


Former-commit-id: 99654074b0426e1e30c47ccfe5f273f8b451b42c
parent 11a0c34b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ Please mark all change in change log and use the ticket from JIRA.
- \#39 - Create SQ8H index hang if using github server version
- \#30 - Some troubleshoot messages in Milvus do not provide enough information
- \#48 - Config unittest failed
- \#59 - Topk result is incorrect for small dataset

## Improvement
- MS-552 - Add and change the easylogging library
+2 −2
Original line number Diff line number Diff line
@@ -253,7 +253,7 @@ XSearchTask::MergeTopkToResultSet(const std::vector<int64_t>& input_ids, const s

        if (result[i].empty()) {
            result_buf.resize(input_k, scheduler::IdDistPair(-1, 0.0));
            uint64_t input_k_multi_i = input_k * i;
            uint64_t input_k_multi_i = topk * i;
            for (auto k = 0; k < input_k; ++k) {
                uint64_t idx = input_k_multi_i + k;
                auto& result_buf_item = result_buf[k];
@@ -266,7 +266,7 @@ XSearchTask::MergeTopkToResultSet(const std::vector<int64_t>& input_ids, const s
            result_buf.resize(output_k, scheduler::IdDistPair(-1, 0.0));
            size_t buf_k = 0, src_k = 0, tar_k = 0;
            uint64_t src_idx;
            uint64_t input_k_multi_i = input_k * i;
            uint64_t input_k_multi_i = topk * i;
            while (buf_k < output_k && src_k < input_k && tar_k < tar_size) {
                src_idx = input_k_multi_i + src_k;
                auto& result_buf_item = result_buf[buf_k];