diff --git a/core/src/index/knowhere/knowhere/index/vector_offset_index/IndexHNSW_NM.cpp b/core/src/index/knowhere/knowhere/index/vector_offset_index/IndexHNSW_NM.cpp index aa6bfde9e06a..1f4055909db2 100644 --- a/core/src/index/knowhere/knowhere/index/vector_offset_index/IndexHNSW_NM.cpp +++ b/core/src/index/knowhere/knowhere/index/vector_offset_index/IndexHNSW_NM.cpp @@ -192,7 +192,7 @@ IndexHNSW_NM::UpdateIndexSize() { if (!index_) { KNOWHERE_THROW_MSG("index not initialize"); } - index_size_ = index_->cal_size(); + index_size_ = index_->cal_size() + Dim() * Count() * sizeof(float); } } // namespace knowhere diff --git a/core/src/index/knowhere/knowhere/index/vector_offset_index/IndexIVFSQNR_NM.cpp b/core/src/index/knowhere/knowhere/index/vector_offset_index/IndexIVFSQNR_NM.cpp index 6804a639c10f..78dc1dc3025a 100644 --- a/core/src/index/knowhere/knowhere/index/vector_offset_index/IndexIVFSQNR_NM.cpp +++ b/core/src/index/knowhere/knowhere/index/vector_offset_index/IndexIVFSQNR_NM.cpp @@ -212,10 +212,11 @@ IVFSQNR_NM::UpdateIndexSize() { } auto ivfsq_index = dynamic_cast(index_.get()); auto nb = ivfsq_index->invlists->compute_ntotal(); + auto code_size = ivfsq_index->code_size; auto nlist = ivfsq_index->nlist; auto d = ivfsq_index->d; - // ivf ids, sq trained vectors and quantizer - index_size_ = nb * sizeof(int64_t) + 2 * d * sizeof(float) + nlist * d * sizeof(float); + // ivf codes, ivf ids, sq trained vectors and quantizer + index_size_ = nb * code_size + nb * sizeof(int64_t) + 2 * d * sizeof(float) + nlist * d * sizeof(float); } } // namespace knowhere diff --git a/core/src/index/knowhere/knowhere/index/vector_offset_index/IndexIVF_NM.cpp b/core/src/index/knowhere/knowhere/index/vector_offset_index/IndexIVF_NM.cpp index 11c86558333f..aa7d9ea0bb38 100644 --- a/core/src/index/knowhere/knowhere/index/vector_offset_index/IndexIVF_NM.cpp +++ b/core/src/index/knowhere/knowhere/index/vector_offset_index/IndexIVF_NM.cpp @@ -359,9 +359,9 @@ IVF_NM::UpdateIndexSize() { auto ivf_index = dynamic_cast(index_.get()); auto nb = ivf_index->invlists->compute_ntotal(); auto nlist = ivf_index->nlist; - auto d = ivf_index->d; - // ivf ids and quantizer - index_size_ = nb * sizeof(int64_t) + nlist * d * sizeof(float); + auto code_size = ivf_index->code_size; + // ivf codes, ivf ids and quantizer + index_size_ = nb * code_size + nb * sizeof(int64_t) + nlist * code_size; } } // namespace knowhere diff --git a/core/src/index/knowhere/knowhere/index/vector_offset_index/IndexNSG_NM.cpp b/core/src/index/knowhere/knowhere/index/vector_offset_index/IndexNSG_NM.cpp index d4a5c0c50ece..0adeac662c9f 100644 --- a/core/src/index/knowhere/knowhere/index/vector_offset_index/IndexNSG_NM.cpp +++ b/core/src/index/knowhere/knowhere/index/vector_offset_index/IndexNSG_NM.cpp @@ -178,7 +178,7 @@ NSG_NM::UpdateIndexSize() { if (!index_) { KNOWHERE_THROW_MSG("index not initialize"); } - index_size_ = index_->GetSize(); + index_size_ = index_->GetSize() + Dim() * Count() * sizeof(float); } } // namespace knowhere