diff --git a/be/src/olap/rowset/segment_v2/ann_index/faiss_ann_index.cpp b/be/src/olap/rowset/segment_v2/ann_index/faiss_ann_index.cpp index e4d6061941eeb1..621fe7fe4eecab 100644 --- a/be/src/olap/rowset/segment_v2/ann_index/faiss_ann_index.cpp +++ b/be/src/olap/rowset/segment_v2/ann_index/faiss_ann_index.cpp @@ -222,8 +222,8 @@ struct FaissIndexReader : faiss::IOReader { lucene::store::IndexInput* _input = nullptr; }; -doris::Status FaissVectorIndex::train(vectorized::Int64 n, const float* x) { - DCHECK(x != nullptr); +doris::Status FaissVectorIndex::train(vectorized::Int64 n, const float* vec) { + DCHECK(vec != nullptr); DCHECK(_index != nullptr); // For PQ index, check if we have enough training data @@ -239,9 +239,8 @@ doris::Status FaissVectorIndex::train(vectorized::Int64 n, const float* x) { ScopedThreadName scoped_name("faiss_train_idx"); // Reserve OpenMP threads globally so concurrent builds stay under omp_threads_limit. ScopedOmpThreadBudget thread_budget; - omp_set_num_threads(config::omp_threads_limit); try { - _index->train(n, x); + _index->train(n, vec); } catch (faiss::FaissException& e) { return doris::Status::RuntimeError("exception occurred during training: {}", e.what()); } diff --git a/be/src/olap/rowset/segment_v2/ann_index/faiss_ann_index.h b/be/src/olap/rowset/segment_v2/ann_index/faiss_ann_index.h index 8d8e3354f5f91a..c06402157aeccc 100644 --- a/be/src/olap/rowset/segment_v2/ann_index/faiss_ann_index.h +++ b/be/src/olap/rowset/segment_v2/ann_index/faiss_ann_index.h @@ -178,7 +178,18 @@ class FaissVectorIndex : public VectorIndex { ~FaissVectorIndex(); - doris::Status train(vectorized::Int64 n, const float* x) override; + /** + * @brief Trains the index with the provided data. + * + * This method is used to train the FAISS index with a set of vectors. + * Training is required for certain index types that need to learn + * parameters from the data before adding vectors. + * + * @param n Number of training vectors + * @param vec Pointer to training vector data (n * dim float values) + * @return Status indicating success or failure + */ + doris::Status train(vectorized::Int64 n, const float* vec) override; /** * @brief Adds vectors to the index for future searches.