diff --git a/internal/core/src/common/Schema.cpp b/internal/core/src/common/Schema.cpp index 52e69121897be999f0894006cbc48ca738fc83f0..9b5a0c3b8a623d1bd87dea62e234d133792436c0 100644 --- a/internal/core/src/common/Schema.cpp +++ b/internal/core/src/common/Schema.cpp @@ -30,7 +30,19 @@ std::shared_ptr<Schema> Schema::ParseFrom(const milvus::proto::schema::CollectionSchema& schema_proto) { auto schema = std::make_shared<Schema>(); schema->set_auto_id(schema_proto.autoid()); + + // NOTE: only two system + std::set<std::string> system_field_names = {"RowID", "Timestamp"}; + for (const milvus::proto::schema::FieldSchema& child : schema_proto.fields()) { + auto field_id = child.fieldid(); + auto name = child.name(); + if (field_id < 100) { + // system field id + AssertInfo(system_field_names.count(name), "id of non system field should be >= 100"); + continue; + } + auto data_type = DataType(child.data_type()); if (child.is_primary_key()) { @@ -51,9 +63,9 @@ Schema::ParseFrom(const milvus::proto::schema::CollectionSchema& schema_proto) { auto dim = boost::lexical_cast<int64_t>(type_map.at("dim")); AssertInfo(index_map.count("metric_type"), "index not found"); auto metric_type = GetMetricType(index_map.at("metric_type")); - schema->AddField(child.name(), data_type, dim, metric_type); + schema->AddField(name, data_type, dim, metric_type); } else { - schema->AddField(child.name(), data_type); + schema->AddField(name, data_type); } } return schema; diff --git a/internal/core/src/indexbuilder/IndexWrapper.cpp b/internal/core/src/indexbuilder/IndexWrapper.cpp index 7938db060c1553697c5852dc3059e5cffea103d2..157f2e1674612aa5bfd99b9f2e1e872545581764 100644 --- a/internal/core/src/indexbuilder/IndexWrapper.cpp +++ b/internal/core/src/indexbuilder/IndexWrapper.cpp @@ -67,75 +67,65 @@ IndexWrapper::parse() { config_[key] = value; } - if (!config_.contains(milvus::knowhere::meta::DIM)) { - // should raise exception here? - PanicInfo("dim must be specific in type params or index params!"); - } else { - auto dim = config_[milvus::knowhere::meta::DIM].get<std::string>(); - config_[milvus::knowhere::meta::DIM] = std::stoi(dim); - } + auto stoi_closure = [](const std::string& s) -> int { return std::stoi(s); }; - if (!config_.contains(milvus::knowhere::meta::TOPK)) { - } else { - auto topk = config_[milvus::knowhere::meta::TOPK].get<std::string>(); - config_[milvus::knowhere::meta::TOPK] = std::stoi(topk); - } + /***************************** meta *******************************/ + check_parameter<int>(milvus::knowhere::meta::DIM, stoi_closure, std::nullopt); + check_parameter<int>(milvus::knowhere::meta::TOPK, stoi_closure, std::nullopt); - if (!config_.contains(milvus::knowhere::IndexParams::nlist)) { - } else { - auto nlist = config_[milvus::knowhere::IndexParams::nlist].get<std::string>(); - config_[milvus::knowhere::IndexParams::nlist] = std::stoi(nlist); - } + /***************************** IVF Params *******************************/ + check_parameter<int>(milvus::knowhere::IndexParams::nprobe, stoi_closure, std::nullopt); + check_parameter<int>(milvus::knowhere::IndexParams::nlist, stoi_closure, std::nullopt); + check_parameter<int>(milvus::knowhere::IndexParams::m, stoi_closure, std::nullopt); + check_parameter<int>(milvus::knowhere::IndexParams::nbits, stoi_closure, std::nullopt); - if (!config_.contains(milvus::knowhere::IndexParams::nprobe)) { - } else { - auto nprobe = config_[milvus::knowhere::IndexParams::nprobe].get<std::string>(); - config_[milvus::knowhere::IndexParams::nprobe] = std::stoi(nprobe); - } + /************************** NSG Parameter **************************/ + check_parameter<int>(milvus::knowhere::IndexParams::knng, stoi_closure, std::nullopt); + check_parameter<int>(milvus::knowhere::IndexParams::search_length, stoi_closure, std::nullopt); + check_parameter<int>(milvus::knowhere::IndexParams::out_degree, stoi_closure, std::nullopt); + check_parameter<int>(milvus::knowhere::IndexParams::candidate, stoi_closure, std::nullopt); - if (!config_.contains(milvus::knowhere::IndexParams::nbits)) { - } else { - auto nbits = config_[milvus::knowhere::IndexParams::nbits].get<std::string>(); - config_[milvus::knowhere::IndexParams::nbits] = std::stoi(nbits); - } + /************************** HNSW Params *****************************/ + check_parameter<int>(milvus::knowhere::IndexParams::efConstruction, stoi_closure, std::nullopt); + check_parameter<int>(milvus::knowhere::IndexParams::M, stoi_closure, std::nullopt); + check_parameter<int>(milvus::knowhere::IndexParams::ef, stoi_closure, std::nullopt); - if (!config_.contains(milvus::knowhere::IndexParams::m)) { - } else { - auto m = config_[milvus::knowhere::IndexParams::m].get<std::string>(); - config_[milvus::knowhere::IndexParams::m] = std::stoi(m); - } + /************************** Annoy Params *****************************/ + check_parameter<int>(milvus::knowhere::IndexParams::n_trees, stoi_closure, std::nullopt); + check_parameter<int>(milvus::knowhere::IndexParams::search_k, stoi_closure, std::nullopt); - /************************** NSG Parameter **************************/ - if (!config_.contains(milvus::knowhere::IndexParams::knng)) { - } else { - auto knng = config_[milvus::knowhere::IndexParams::knng].get<std::string>(); - config_[milvus::knowhere::IndexParams::knng] = std::stoi(knng); - } + /************************** PQ Params *****************************/ + check_parameter<int>(milvus::knowhere::IndexParams::PQM, stoi_closure, std::nullopt); - if (!config_.contains(milvus::knowhere::IndexParams::search_length)) { - } else { - auto search_length = config_[milvus::knowhere::IndexParams::search_length].get<std::string>(); - config_[milvus::knowhere::IndexParams::search_length] = std::stoi(search_length); - } + /************************** NGT Params *****************************/ + check_parameter<int>(milvus::knowhere::IndexParams::edge_size, stoi_closure, std::nullopt); - if (!config_.contains(milvus::knowhere::IndexParams::out_degree)) { - } else { - auto out_degree = config_[milvus::knowhere::IndexParams::out_degree].get<std::string>(); - config_[milvus::knowhere::IndexParams::out_degree] = std::stoi(out_degree); - } + /************************** NGT Search Params *****************************/ + check_parameter<int>(milvus::knowhere::IndexParams::epsilon, stoi_closure, std::nullopt); + check_parameter<int>(milvus::knowhere::IndexParams::max_search_edges, stoi_closure, std::nullopt); - if (!config_.contains(milvus::knowhere::IndexParams::candidate)) { - } else { - auto candidate = config_[milvus::knowhere::IndexParams::candidate].get<std::string>(); - config_[milvus::knowhere::IndexParams::candidate] = std::stoi(candidate); - } + /************************** NGT_PANNG Params *****************************/ + check_parameter<int>(milvus::knowhere::IndexParams::forcedly_pruned_edge_size, stoi_closure, std::nullopt); + check_parameter<int>(milvus::knowhere::IndexParams::selectively_pruned_edge_size, stoi_closure, std::nullopt); + + /************************** NGT_ONNG Params *****************************/ + check_parameter<int>(milvus::knowhere::IndexParams::outgoing_edge_size, stoi_closure, std::nullopt); + check_parameter<int>(milvus::knowhere::IndexParams::incoming_edge_size, stoi_closure, std::nullopt); + + /************************** Serialize Params *******************************/ + check_parameter<int>(milvus::knowhere::INDEX_FILE_SLICE_SIZE_IN_MEGABYTE, stoi_closure, std::optional{4}); +} - /************************** Serialize *******************************/ - if (!config_.contains(milvus::knowhere::INDEX_FILE_SLICE_SIZE_IN_MEGABYTE)) { - config_[milvus::knowhere::INDEX_FILE_SLICE_SIZE_IN_MEGABYTE] = 4; +template <typename T> +void +IndexWrapper::check_parameter(const std::string& key, std::function<T(std::string)> fn, std::optional<T> default_v) { + if (!config_.contains(key)) { + if (default_v.has_value()) { + config_[key] = default_v.value(); + } } else { - auto slice_size = config_[milvus::knowhere::INDEX_FILE_SLICE_SIZE_IN_MEGABYTE].get<std::string>(); - config_[milvus::knowhere::INDEX_FILE_SLICE_SIZE_IN_MEGABYTE] = std::stoi(slice_size); + auto value = config_[key]; + config_[key] = fn(value); } } diff --git a/internal/core/src/indexbuilder/IndexWrapper.h b/internal/core/src/indexbuilder/IndexWrapper.h index 562ef77f1d52f84ebb6686da2a63c4553c123f67..f0d75da54c3b51786e5b78b699dba2775a226a51 100644 --- a/internal/core/src/indexbuilder/IndexWrapper.h +++ b/internal/core/src/indexbuilder/IndexWrapper.h @@ -52,6 +52,12 @@ class IndexWrapper { void StoreRawData(const knowhere::DatasetPtr& dataset); + template <typename T> + void + check_parameter(const std::string& key, + std::function<T(std::string)> fn, + std::optional<T> default_v = std::nullopt); + public: void BuildWithIds(const knowhere::DatasetPtr& dataset); diff --git a/internal/core/src/indexbuilder/utils.h b/internal/core/src/indexbuilder/utils.h index 7e40e6283aa163dd67ca9edb18ae86a93d921b2d..e1ed0804965cd9698a0a42cb182931d6c2a94cc3 100644 --- a/internal/core/src/indexbuilder/utils.h +++ b/internal/core/src/indexbuilder/utils.h @@ -25,14 +25,17 @@ NM_List() { static std::vector<std::string> ret{ milvus::knowhere::IndexEnum::INDEX_FAISS_IVFFLAT, milvus::knowhere::IndexEnum::INDEX_NSG, + milvus::knowhere::IndexEnum::INDEX_RHNSWFlat, }; return ret; } std::vector<std::string> BIN_List() { - static std::vector<std::string> ret{milvus::knowhere::IndexEnum::INDEX_FAISS_BIN_IDMAP, - milvus::knowhere::IndexEnum::INDEX_FAISS_BIN_IVFFLAT}; + static std::vector<std::string> ret{ + milvus::knowhere::IndexEnum::INDEX_FAISS_BIN_IDMAP, + milvus::knowhere::IndexEnum::INDEX_FAISS_BIN_IVFFLAT, + }; return ret; } @@ -40,7 +43,7 @@ std::vector<std::string> Need_ID_List() { static std::vector<std::string> ret{ // milvus::knowhere::IndexEnum::INDEX_FAISS_BIN_IVFFLAT, - // milvus::knowhere::IndexEnum::INDEX_NSG + // milvus::knowhere::IndexEnum::INDEX_NSG, }; return ret; @@ -48,7 +51,9 @@ Need_ID_List() { std::vector<std::string> Need_BuildAll_list() { - static std::vector<std::string> ret{milvus::knowhere::IndexEnum::INDEX_NSG}; + static std::vector<std::string> ret{ + milvus::knowhere::IndexEnum::INDEX_NSG, + }; return ret; } diff --git a/internal/core/unittest/test_c_api.cpp b/internal/core/unittest/test_c_api.cpp index a24770e03754498cfd8306147a9d70d6315e2747..0c5dbe83a8ca657cfef829b5767577312124f416 100644 --- a/internal/core/unittest/test_c_api.cpp +++ b/internal/core/unittest/test_c_api.cpp @@ -382,7 +382,7 @@ generate_collection_shema(std::string metric_type, std::string dim) { auto vec_field_schema = collection_schema.add_fields(); vec_field_schema->set_name("fakevec"); - vec_field_schema->set_fieldid(0); + vec_field_schema->set_fieldid(100); vec_field_schema->set_data_type(schema::DataType::VECTOR_FLOAT); auto metric_type_param = vec_field_schema->add_index_params(); metric_type_param->set_key("metric_type"); @@ -394,7 +394,7 @@ generate_collection_shema(std::string metric_type, std::string dim) { auto other_field_schema = collection_schema.add_fields(); ; other_field_schema->set_name("counter"); - other_field_schema->set_fieldid(1); + other_field_schema->set_fieldid(101); other_field_schema->set_data_type(schema::DataType::INT64); std::string schema_string; diff --git a/internal/core/unittest/test_index_wrapper.cpp b/internal/core/unittest/test_index_wrapper.cpp index 50aed377d32c59c5667b2ae63afd8a5a3c54e64c..a885c837a096b9558da69ec74c73d2c9c019e510 100644 --- a/internal/core/unittest/test_index_wrapper.cpp +++ b/internal/core/unittest/test_index_wrapper.cpp @@ -99,14 +99,105 @@ generate_conf(const milvus::knowhere::IndexType& index_type, const milvus::knowh {milvus::knowhere::Metric::TYPE, metric_type}, }; } else if (index_type == milvus::knowhere::IndexEnum::INDEX_NSG) { - return milvus::knowhere::Config{{milvus::knowhere::meta::DIM, DIM}, - {milvus::knowhere::IndexParams::nlist, 163}, - {milvus::knowhere::IndexParams::nprobe, 8}, - {milvus::knowhere::IndexParams::knng, 20}, - {milvus::knowhere::IndexParams::search_length, 40}, - {milvus::knowhere::IndexParams::out_degree, 30}, - {milvus::knowhere::IndexParams::candidate, 100}, - {milvus::knowhere::Metric::TYPE, metric_type}}; + return milvus::knowhere::Config{ + {milvus::knowhere::meta::DIM, DIM}, + {milvus::knowhere::IndexParams::nlist, 163}, + {milvus::knowhere::IndexParams::nprobe, 8}, + {milvus::knowhere::IndexParams::knng, 20}, + {milvus::knowhere::IndexParams::search_length, 40}, + {milvus::knowhere::IndexParams::out_degree, 30}, + {milvus::knowhere::IndexParams::candidate, 100}, + {milvus::knowhere::Metric::TYPE, metric_type}, + }; +#ifdef MILVUS_SUPPORT_SPTAG + } else if (index_type == milvus::knowhere::IndexEnum::INDEX_SPTAG_KDT_RNT) { + return milvus::knowhere::Config{ + {milvus::knowhere::meta::DIM, DIM}, + // {milvus::knowhere::meta::TOPK, 10}, + {milvus::knowhere::Metric::TYPE, metric_type}, + {milvus::knowhere::INDEX_FILE_SLICE_SIZE_IN_MEGABYTE, 4}, + }; + } else if (index_type == milvus::knowhere::IndexEnum::INDEX_SPTAG_BKT_RNT) { + return milvus::knowhere::Config{ + {milvus::knowhere::meta::DIM, DIM}, + // {milvus::knowhere::meta::TOPK, 10}, + {milvus::knowhere::Metric::TYPE, metric_type}, + {milvus::knowhere::INDEX_FILE_SLICE_SIZE_IN_MEGABYTE, 4}, + }; +#endif + } else if (index_type == milvus::knowhere::IndexEnum::INDEX_HNSW) { + return milvus::knowhere::Config{ + {milvus::knowhere::meta::DIM, DIM}, + // {milvus::knowhere::meta::TOPK, 10}, + {milvus::knowhere::IndexParams::M, 16}, + {milvus::knowhere::IndexParams::efConstruction, 200}, + {milvus::knowhere::IndexParams::ef, 200}, + {milvus::knowhere::Metric::TYPE, metric_type}, + }; + } else if (index_type == milvus::knowhere::IndexEnum::INDEX_ANNOY) { + return milvus::knowhere::Config{ + {milvus::knowhere::meta::DIM, DIM}, + // {milvus::knowhere::meta::TOPK, 10}, + {milvus::knowhere::IndexParams::n_trees, 4}, + {milvus::knowhere::IndexParams::search_k, 100}, + {milvus::knowhere::Metric::TYPE, metric_type}, + {milvus::knowhere::INDEX_FILE_SLICE_SIZE_IN_MEGABYTE, 4}, + }; + } else if (index_type == milvus::knowhere::IndexEnum::INDEX_RHNSWFlat) { + return milvus::knowhere::Config{ + {milvus::knowhere::meta::DIM, DIM}, + // {milvus::knowhere::meta::TOPK, 10}, + {milvus::knowhere::IndexParams::M, 16}, + {milvus::knowhere::IndexParams::efConstruction, 200}, + {milvus::knowhere::IndexParams::ef, 200}, + {milvus::knowhere::Metric::TYPE, metric_type}, + {milvus::knowhere::INDEX_FILE_SLICE_SIZE_IN_MEGABYTE, 4}, + }; + } else if (index_type == milvus::knowhere::IndexEnum::INDEX_RHNSWPQ) { + return milvus::knowhere::Config{ + {milvus::knowhere::meta::DIM, DIM}, + // {milvus::knowhere::meta::TOPK, 10}, + {milvus::knowhere::IndexParams::M, 16}, + {milvus::knowhere::IndexParams::efConstruction, 200}, + {milvus::knowhere::IndexParams::ef, 200}, + {milvus::knowhere::Metric::TYPE, metric_type}, + {milvus::knowhere::INDEX_FILE_SLICE_SIZE_IN_MEGABYTE, 4}, + {milvus::knowhere::IndexParams::PQM, 8}, + }; + } else if (index_type == milvus::knowhere::IndexEnum::INDEX_RHNSWSQ) { + return milvus::knowhere::Config{ + {milvus::knowhere::meta::DIM, DIM}, + // {milvus::knowhere::meta::TOPK, 10}, + {milvus::knowhere::IndexParams::M, 16}, + {milvus::knowhere::IndexParams::efConstruction, 200}, + {milvus::knowhere::IndexParams::ef, 200}, + {milvus::knowhere::Metric::TYPE, metric_type}, + {milvus::knowhere::INDEX_FILE_SLICE_SIZE_IN_MEGABYTE, 4}, + }; + } else if (index_type == milvus::knowhere::IndexEnum::INDEX_NGTPANNG) { + return milvus::knowhere::Config{ + {milvus::knowhere::meta::DIM, DIM}, + // {milvus::knowhere::meta::TOPK, 10}, + {milvus::knowhere::Metric::TYPE, metric_type}, + {milvus::knowhere::IndexParams::edge_size, 10}, + {milvus::knowhere::IndexParams::epsilon, 0.1}, + {milvus::knowhere::IndexParams::max_search_edges, 50}, + {milvus::knowhere::IndexParams::forcedly_pruned_edge_size, 60}, + {milvus::knowhere::IndexParams::selectively_pruned_edge_size, 30}, + {milvus::knowhere::INDEX_FILE_SLICE_SIZE_IN_MEGABYTE, 4}, + }; + } else if (index_type == milvus::knowhere::IndexEnum::INDEX_NGTONNG) { + return milvus::knowhere::Config{ + {milvus::knowhere::meta::DIM, DIM}, + // {milvus::knowhere::meta::TOPK, 10}, + {milvus::knowhere::Metric::TYPE, metric_type}, + {milvus::knowhere::IndexParams::edge_size, 20}, + {milvus::knowhere::IndexParams::epsilon, 0.1}, + {milvus::knowhere::IndexParams::max_search_edges, 50}, + {milvus::knowhere::IndexParams::outgoing_edge_size, 5}, + {milvus::knowhere::IndexParams::incoming_edge_size, 40}, + {milvus::knowhere::INDEX_FILE_SLICE_SIZE_IN_MEGABYTE, 4}, + }; } return milvus::knowhere::Config(); } @@ -366,6 +457,17 @@ INSTANTIATE_TEST_CASE_P( std::pair(milvus::knowhere::IndexEnum::INDEX_FAISS_BIN_IVFFLAT, milvus::knowhere::Metric::JACCARD), std::pair(milvus::knowhere::IndexEnum::INDEX_FAISS_BIN_IDMAP, milvus::knowhere::Metric::JACCARD), +#ifdef MILVUS_SUPPORT_SPTAG + std::pair(milvus::knowhere::IndexEnum::INDEX_SPTAG_KDT_RNT, milvus::knowhere::Metric::L2), + std::pair(milvus::knowhere::IndexEnum::INDEX_SPTAG_BKT_RNT, milvus::knowhere::Metric::L2), +#endif + std::pair(milvus::knowhere::IndexEnum::INDEX_HNSW, milvus::knowhere::Metric::L2), + std::pair(milvus::knowhere::IndexEnum::INDEX_ANNOY, milvus::knowhere::Metric::L2), + std::pair(milvus::knowhere::IndexEnum::INDEX_RHNSWFlat, milvus::knowhere::Metric::L2), + std::pair(milvus::knowhere::IndexEnum::INDEX_RHNSWPQ, milvus::knowhere::Metric::L2), + std::pair(milvus::knowhere::IndexEnum::INDEX_RHNSWSQ, milvus::knowhere::Metric::L2), + std::pair(milvus::knowhere::IndexEnum::INDEX_NGTPANNG, milvus::knowhere::Metric::L2), + std::pair(milvus::knowhere::IndexEnum::INDEX_NGTONNG, milvus::knowhere::Metric::L2), std::pair(milvus::knowhere::IndexEnum::INDEX_NSG, milvus::knowhere::Metric::L2))); TEST_P(IndexWrapperTest, Constructor) { diff --git a/internal/core/unittest/test_query.cpp b/internal/core/unittest/test_query.cpp index e42f240365a7e894e0548fc8a57a01a31acaebfa..ce914a5c9eb7c2afc6de8ccf43132685311b4aa2 100644 --- a/internal/core/unittest/test_query.cpp +++ b/internal/core/unittest/test_query.cpp @@ -409,6 +409,7 @@ TEST(Query, FillSegment) { field->set_name("fakevec"); field->set_is_primary_key(false); field->set_description("asdgfsagf"); + field->set_fieldid(100); field->set_data_type(pb::schema::DataType::VECTOR_FLOAT); auto param = field->add_type_params(); param->set_key("dim"); @@ -421,6 +422,7 @@ TEST(Query, FillSegment) { { auto field = proto.add_fields(); field->set_name("the_key"); + field->set_fieldid(101); field->set_is_primary_key(true); field->set_description("asdgfsagf"); field->set_data_type(pb::schema::DataType::INT32); diff --git a/internal/indexbuilder/index_test.go b/internal/indexbuilder/index_test.go index 88cb7e3b4b364725a47b661470f09da7129117f3..f64f1289b474cc5b2ef9231024ed45ab5c39139a 100644 --- a/internal/indexbuilder/index_test.go +++ b/internal/indexbuilder/index_test.go @@ -181,6 +181,8 @@ func TestCIndex_Codec(t *testing.T) { err = index.Delete() assert.Equal(t, err, nil) + err = copyIndex.Delete() + assert.Equal(t, err, nil) } } diff --git a/internal/querynode/load_index_service_test.go b/internal/querynode/load_index_service_test.go index 4145ba3bcd43c2e61aaf59bcf56e3f8eea50f1a1..2b45f9d5a840dea70ddee49307a1004603316fe0 100644 --- a/internal/querynode/load_index_service_test.go +++ b/internal/querynode/load_index_service_test.go @@ -84,10 +84,11 @@ func TestLoadIndexService(t *testing.T) { } // create loadIndexClient + fieldID := UniqueID(100) loadIndexChannelNames := Params.LoadIndexChannelNames pulsarURL := Params.PulsarAddress client := client.NewLoadIndexClient(node.queryNodeLoopCtx, pulsarURL, loadIndexChannelNames) - client.LoadIndex(indexPaths, segmentID, UniqueID(0), "vec", indexParams) + client.LoadIndex(indexPaths, segmentID, fieldID, "vec", indexParams) // init message stream consumer and do checks statsMs := msgstream.NewPulsarMsgStream(node.queryNodeLoopCtx, Params.StatsReceiveBufSize) @@ -110,7 +111,7 @@ func TestLoadIndexService(t *testing.T) { assert.Equal(t, ok, true) assert.Equal(t, len(statsMsg.FieldStats), 1) fieldStats0 := statsMsg.FieldStats[0] - assert.Equal(t, fieldStats0.FieldID, int64(0)) + assert.Equal(t, fieldStats0.FieldID, fieldID) assert.Equal(t, fieldStats0.CollectionID, collectionID) assert.Equal(t, len(fieldStats0.IndexStats), 1) indexStats0 := fieldStats0.IndexStats[0] diff --git a/internal/querynode/meta_service_test.go b/internal/querynode/meta_service_test.go index 63d8d92c1bce80157673c87ed374c8688036b5e9..55e51bebfb969f65d20d69242d28c6ec2e554910 100644 --- a/internal/querynode/meta_service_test.go +++ b/internal/querynode/meta_service_test.go @@ -125,6 +125,7 @@ func TestMetaService_processCollectionCreate(t *testing.T) { value := `schema: < name: "test" fields: < + fieldID:100 name: "vec" data_type: VECTOR_FLOAT type_params: < @@ -137,6 +138,7 @@ func TestMetaService_processCollectionCreate(t *testing.T) { > > fields: < + fieldID:101 name: "age" data_type: INT32 type_params: < @@ -190,6 +192,7 @@ func TestMetaService_processCreate(t *testing.T) { msg1 := `schema: < name: "test" fields: < + fieldID:100 name: "vec" data_type: VECTOR_FLOAT type_params: < @@ -202,6 +205,7 @@ func TestMetaService_processCreate(t *testing.T) { > > fields: < + fieldID:101 name: "age" data_type: INT32 type_params: < @@ -278,6 +282,7 @@ func TestMetaService_processCollectionModify(t *testing.T) { value := `schema: < name: "test" fields: < + fieldID:100 name: "vec" data_type: VECTOR_FLOAT type_params: < @@ -290,6 +295,7 @@ func TestMetaService_processCollectionModify(t *testing.T) { > > fields: < + fieldID:101 name: "age" data_type: INT32 type_params: < @@ -328,6 +334,7 @@ func TestMetaService_processCollectionModify(t *testing.T) { newValue := `schema: < name: "test" fields: < + fieldID:100 name: "vec" data_type: VECTOR_FLOAT type_params: < @@ -340,6 +347,7 @@ func TestMetaService_processCollectionModify(t *testing.T) { > > fields: < + fieldID:101 name: "age" data_type: INT32 type_params: < @@ -382,6 +390,7 @@ func TestMetaService_processModify(t *testing.T) { msg1 := `schema: < name: "test" fields: < + fieldID:100 name: "vec" data_type: VECTOR_FLOAT type_params: < @@ -394,6 +403,7 @@ func TestMetaService_processModify(t *testing.T) { > > fields: < + fieldID:101 name: "age" data_type: INT32 type_params: < @@ -446,6 +456,7 @@ func TestMetaService_processModify(t *testing.T) { msg3 := `schema: < name: "test" fields: < + fieldID:100 name: "vec" data_type: VECTOR_FLOAT type_params: < @@ -458,6 +469,7 @@ func TestMetaService_processModify(t *testing.T) { > > fields: < + fieldID:101 name: "age" data_type: INT32 type_params: < @@ -536,6 +548,7 @@ func TestMetaService_processCollectionDelete(t *testing.T) { value := `schema: < name: "test" fields: < + fieldID:100 name: "vec" data_type: VECTOR_FLOAT type_params: < @@ -548,6 +561,7 @@ func TestMetaService_processCollectionDelete(t *testing.T) { > > fields: < + fieldID:101 name: "age" data_type: INT32 type_params: < @@ -582,6 +596,7 @@ func TestMetaService_processDelete(t *testing.T) { msg1 := `schema: < name: "test" fields: < + fieldID:100 name: "vec" data_type: VECTOR_FLOAT type_params: < @@ -594,6 +609,7 @@ func TestMetaService_processDelete(t *testing.T) { > > fields: < + fieldID:101 name: "age" data_type: INT32 type_params: < diff --git a/internal/querynode/query_node_test.go b/internal/querynode/query_node_test.go index 098f2cae2daf0953db68a36d3a832f39653882eb..e33f2b465d97a9f7b967a999af5bffe700a544c1 100644 --- a/internal/querynode/query_node_test.go +++ b/internal/querynode/query_node_test.go @@ -26,7 +26,7 @@ func setup() { func genTestCollectionMeta(collectionName string, collectionID UniqueID) *etcdpb.CollectionMeta { fieldVec := schemapb.FieldSchema{ - FieldID: UniqueID(0), + FieldID: UniqueID(100), Name: "vec", IsPrimaryKey: false, DataType: schemapb.DataType_VECTOR_FLOAT, @@ -45,7 +45,7 @@ func genTestCollectionMeta(collectionName string, collectionID UniqueID) *etcdpb } fieldInt := schemapb.FieldSchema{ - FieldID: UniqueID(1), + FieldID: UniqueID(101), Name: "age", IsPrimaryKey: false, DataType: schemapb.DataType_INT32, @@ -66,6 +66,7 @@ func genTestCollectionMeta(collectionName string, collectionID UniqueID) *etcdpb SegmentIDs: []UniqueID{0}, PartitionTags: []string{"default"}, } + return &collectionMeta }