INNER CODE UNIT · C++
executor
epsilla-cloud/vectordb · engine/db/table_mvp.cpp:361
auto executor = execution::RAIIVecSearchExecutor(pool, pool->acquire());
lock.unlock();
// The query dimension needs to match the vector dimension.
if (std::holds_alternative<DenseVectorPtr>(query_data) && query_dimension != executor.exec_->dimension_) {
return Status(DB_UNEXPECTED_ERROR,
"Query dimension doesn't match the vector field dimension.");
}
// Search.
int64_t result_num = 0;
executor.exec_->Search(updatedQueryData, table_segment_.get(), limit,
filter_nodes, result_num);
result_num = result_num > limit ? limit : result_num;
// If facets are provided, only project if query_fields if not empty.
if (query_fields.size() > 0 || facet_executors.size() == 0) {
auto status =