diff --git a/internal/core/src/pb/milvus.pb.cc b/internal/core/src/pb/milvus.pb.cc index 3f87bf09a2..39693f9645 100644 --- a/internal/core/src/pb/milvus.pb.cc +++ b/internal/core/src/pb/milvus.pb.cc @@ -26,6 +26,7 @@ extern PROTOBUF_INTERNAL_EXPORT_milvus_2eproto ::PROTOBUF_NAMESPACE_ID::internal extern PROTOBUF_INTERNAL_EXPORT_schema_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_CollectionSchema_schema_2eproto; extern PROTOBUF_INTERNAL_EXPORT_schema_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_FieldData_schema_2eproto; extern PROTOBUF_INTERNAL_EXPORT_schema_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_IDs_schema_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_schema_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_SearchResultData_schema_2eproto; namespace milvus { namespace proto { namespace milvus { @@ -1014,9 +1015,10 @@ static void InitDefaultsscc_info_SearchResults_milvus_2eproto() { ::milvus::proto::milvus::SearchResults::InitAsDefaultInstance(); } -::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_SearchResults_milvus_2eproto = - {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsscc_info_SearchResults_milvus_2eproto}, { - &scc_info_Status_common_2eproto.base,}}; +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_SearchResults_milvus_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsscc_info_SearchResults_milvus_2eproto}, { + &scc_info_Status_common_2eproto.base, + &scc_info_SearchResultData_schema_2eproto.base,}}; static void InitDefaultsscc_info_ShowCollectionsRequest_milvus_2eproto() { GOOGLE_PROTOBUF_VERIFY_VERSION; @@ -1480,6 +1482,7 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_milvus_2eproto::offsets[] PROT PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::SearchRequest, dsl_), PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::SearchRequest, placeholder_group_), PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::SearchRequest, dsl_type_), + PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::SearchRequest, output_fields_), PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::SearchRequest, search_params_), PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::SearchRequest, travel_timestamp_), ~0u, // no _has_bits_ @@ -1516,7 +1519,7 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_milvus_2eproto::offsets[] PROT ~0u, // no _oneof_case_ ~0u, // no _weak_field_map_ PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::SearchResults, status_), - PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::SearchResults, hits_), + PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::SearchResults, results_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::FlushRequest, _internal_metadata_), ~0u, // no _extensions_ @@ -1661,23 +1664,23 @@ static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOB { 326, -1, sizeof(::milvus::proto::milvus::PlaceholderValue)}, { 334, -1, sizeof(::milvus::proto::milvus::PlaceholderGroup)}, { 340, -1, sizeof(::milvus::proto::milvus::SearchRequest)}, - { 354, -1, sizeof(::milvus::proto::milvus::RetrieveRequest)}, - { 366, -1, sizeof(::milvus::proto::milvus::RetrieveResults)}, - { 374, -1, sizeof(::milvus::proto::milvus::Hits)}, - { 382, -1, sizeof(::milvus::proto::milvus::SearchResults)}, - { 389, -1, sizeof(::milvus::proto::milvus::FlushRequest)}, - { 397, -1, sizeof(::milvus::proto::milvus::QueryRequest)}, - { 408, -1, sizeof(::milvus::proto::milvus::QueryResults)}, - { 415, -1, sizeof(::milvus::proto::milvus::PersistentSegmentInfo)}, - { 425, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoRequest)}, - { 433, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoResponse)}, - { 440, -1, sizeof(::milvus::proto::milvus::QuerySegmentInfo)}, - { 452, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoRequest)}, - { 460, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoResponse)}, - { 467, -1, sizeof(::milvus::proto::milvus::DummyRequest)}, - { 473, -1, sizeof(::milvus::proto::milvus::DummyResponse)}, - { 479, -1, sizeof(::milvus::proto::milvus::RegisterLinkRequest)}, - { 484, -1, sizeof(::milvus::proto::milvus::RegisterLinkResponse)}, + { 355, -1, sizeof(::milvus::proto::milvus::RetrieveRequest)}, + { 367, -1, sizeof(::milvus::proto::milvus::RetrieveResults)}, + { 375, -1, sizeof(::milvus::proto::milvus::Hits)}, + { 383, -1, sizeof(::milvus::proto::milvus::SearchResults)}, + { 390, -1, sizeof(::milvus::proto::milvus::FlushRequest)}, + { 398, -1, sizeof(::milvus::proto::milvus::QueryRequest)}, + { 409, -1, sizeof(::milvus::proto::milvus::QueryResults)}, + { 416, -1, sizeof(::milvus::proto::milvus::PersistentSegmentInfo)}, + { 426, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoRequest)}, + { 434, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoResponse)}, + { 441, -1, sizeof(::milvus::proto::milvus::QuerySegmentInfo)}, + { 453, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoRequest)}, + { 461, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoResponse)}, + { 468, -1, sizeof(::milvus::proto::milvus::DummyRequest)}, + { 474, -1, sizeof(::milvus::proto::milvus::DummyResponse)}, + { 480, -1, sizeof(::milvus::proto::milvus::RegisterLinkRequest)}, + { 485, -1, sizeof(::milvus::proto::milvus::RegisterLinkResponse)}, }; static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = { @@ -1874,144 +1877,145 @@ const char descriptor_table_protodef_milvus_2eproto[] PROTOBUF_SECTION_VARIABLE( "milvus.proto.milvus.PlaceholderType\022\016\n\006v" "alues\030\003 \003(\014\"O\n\020PlaceholderGroup\022;\n\014place" "holders\030\001 \003(\0132%.milvus.proto.milvus.Plac" - "eholderValue\"\252\002\n\rSearchRequest\022*\n\004base\030\001" + "eholderValue\"\301\002\n\rSearchRequest\022*\n\004base\030\001" " \001(\0132\034.milvus.proto.common.MsgBase\022\017\n\007db" "_name\030\002 \001(\t\022\027\n\017collection_name\030\003 \001(\t\022\027\n\017" "partition_names\030\004 \003(\t\022\013\n\003dsl\030\005 \001(\t\022\031\n\021pl" "aceholder_group\030\006 \001(\014\022.\n\010dsl_type\030\007 \001(\0162" - "\034.milvus.proto.common.DslType\0228\n\rsearch_" - "params\030\010 \003(\0132!.milvus.proto.common.KeyVa" - "luePair\022\030\n\020travel_timestamp\030\t \001(\004\"\330\001\n\017Re" - "trieveRequest\022*\n\004base\030\001 \001(\0132\034.milvus.pro" - "to.common.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017co" - "llection_name\030\003 \001(\t\022\027\n\017partition_names\030\004" - " \003(\t\022%\n\003ids\030\005 \001(\0132\030.milvus.proto.schema." - "IDs\022\025\n\routput_fields\030\006 \003(\t\022\030\n\020travel_tim" - "estamp\030\007 \001(\004\"\232\001\n\017RetrieveResults\022+\n\006stat" - "us\030\001 \001(\0132\033.milvus.proto.common.Status\022%\n" - "\003ids\030\002 \001(\0132\030.milvus.proto.schema.IDs\0223\n\013" - "fields_data\030\003 \003(\0132\036.milvus.proto.schema." - "FieldData\"5\n\004Hits\022\013\n\003IDs\030\001 \003(\003\022\020\n\010row_da" - "ta\030\002 \003(\014\022\016\n\006scores\030\003 \003(\002\"J\n\rSearchResult" - "s\022+\n\006status\030\001 \001(\0132\033.milvus.proto.common." - "Status\022\014\n\004hits\030\002 \003(\014\"e\n\014FlushRequest\022*\n\004" + "\034.milvus.proto.common.DslType\022\025\n\routput_" + "fields\030\010 \003(\t\0228\n\rsearch_params\030\t \003(\0132!.mi" + "lvus.proto.common.KeyValuePair\022\030\n\020travel" + "_timestamp\030\n \001(\004\"\330\001\n\017RetrieveRequest\022*\n\004" "base\030\001 \001(\0132\034.milvus.proto.common.MsgBase" - "\022\017\n\007db_name\030\002 \001(\t\022\030\n\020collection_names\030\003 " - "\003(\t\"\242\001\n\014QueryRequest\022*\n\004base\030\001 \001(\0132\034.mil" - "vus.proto.common.MsgBase\022\017\n\007db_name\030\002 \001(" - "\t\022\027\n\017collection_name\030\003 \001(\t\022\014\n\004expr\030\004 \001(\t" - "\022\025\n\routput_fields\030\005 \003(\t\022\027\n\017partition_nam" - "es\030\006 \003(\t\"p\n\014QueryResults\022+\n\006status\030\001 \001(\013" - "2\033.milvus.proto.common.Status\0223\n\013fields_" - "data\030\002 \003(\0132\036.milvus.proto.schema.FieldDa" - "ta\"\231\001\n\025PersistentSegmentInfo\022\021\n\tsegmentI" - "D\030\001 \001(\003\022\024\n\014collectionID\030\002 \001(\003\022\023\n\013partiti" - "onID\030\003 \001(\003\022\020\n\010num_rows\030\004 \001(\003\0220\n\005state\030\005 " - "\001(\0162!.milvus.proto.common.SegmentState\"u" - "\n\037GetPersistentSegmentInfoRequest\022*\n\004bas" - "e\030\001 \001(\0132\034.milvus.proto.common.MsgBase\022\016\n" - "\006dbName\030\002 \001(\t\022\026\n\016collectionName\030\003 \001(\t\"\212\001" - "\n GetPersistentSegmentInfoResponse\022+\n\006st" - "atus\030\001 \001(\0132\033.milvus.proto.common.Status\022" - "9\n\005infos\030\002 \003(\0132*.milvus.proto.milvus.Per" - "sistentSegmentInfo\"\231\001\n\020QuerySegmentInfo\022" - "\021\n\tsegmentID\030\001 \001(\003\022\024\n\014collectionID\030\002 \001(\003" - "\022\023\n\013partitionID\030\003 \001(\003\022\020\n\010mem_size\030\004 \001(\003\022" - "\020\n\010num_rows\030\005 \001(\003\022\022\n\nindex_name\030\006 \001(\t\022\017\n" - "\007indexID\030\007 \001(\003\"p\n\032GetQuerySegmentInfoReq" - "uest\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common" - ".MsgBase\022\016\n\006dbName\030\002 \001(\t\022\026\n\016collectionNa" - "me\030\003 \001(\t\"\200\001\n\033GetQuerySegmentInfoResponse" - "\022+\n\006status\030\001 \001(\0132\033.milvus.proto.common.S" - "tatus\0224\n\005infos\030\002 \003(\0132%.milvus.proto.milv" - "us.QuerySegmentInfo\"$\n\014DummyRequest\022\024\n\014r" - "equest_type\030\001 \001(\t\"!\n\rDummyResponse\022\020\n\010re" - "sponse\030\001 \001(\t\"\025\n\023RegisterLinkRequest\"r\n\024R" - "egisterLinkResponse\022-\n\007address\030\001 \001(\0132\034.m" - "ilvus.proto.common.Address\022+\n\006status\030\002 \001" - "(\0132\033.milvus.proto.common.Status*,\n\023ShowC" - "ollectionsType\022\007\n\003All\020\000\022\014\n\010InMemory\020\001*>\n" - "\017PlaceholderType\022\010\n\004None\020\000\022\020\n\014BinaryVect" - "or\020d\022\017\n\013FloatVector\020e2\215\027\n\rMilvusService\022" - "_\n\020CreateCollection\022,.milvus.proto.milvu" - "s.CreateCollectionRequest\032\033.milvus.proto" - ".common.Status\"\000\022[\n\016DropCollection\022*.mil" - "vus.proto.milvus.DropCollectionRequest\032\033" - ".milvus.proto.common.Status\"\000\022_\n\rHasColl" - "ection\022).milvus.proto.milvus.HasCollecti" - "onRequest\032!.milvus.proto.milvus.BoolResp" - "onse\"\000\022[\n\016LoadCollection\022*.milvus.proto." - "milvus.LoadCollectionRequest\032\033.milvus.pr" - "oto.common.Status\"\000\022a\n\021ReleaseCollection" - "\022-.milvus.proto.milvus.ReleaseCollection" - "Request\032\033.milvus.proto.common.Status\"\000\022w" - "\n\022DescribeCollection\022..milvus.proto.milv" - "us.DescribeCollectionRequest\032/.milvus.pr" - "oto.milvus.DescribeCollectionResponse\"\000\022" - "\206\001\n\027GetCollectionStatistics\0223.milvus.pro" - "to.milvus.GetCollectionStatisticsRequest" - "\0324.milvus.proto.milvus.GetCollectionStat" - "isticsResponse\"\000\022n\n\017ShowCollections\022+.mi" - "lvus.proto.milvus.ShowCollectionsRequest" - "\032,.milvus.proto.milvus.ShowCollectionsRe" - "sponse\"\000\022]\n\017CreatePartition\022+.milvus.pro" - "to.milvus.CreatePartitionRequest\032\033.milvu" - "s.proto.common.Status\"\000\022Y\n\rDropPartition" - "\022).milvus.proto.milvus.DropPartitionRequ" - "est\032\033.milvus.proto.common.Status\"\000\022]\n\014Ha" - "sPartition\022(.milvus.proto.milvus.HasPart" - "itionRequest\032!.milvus.proto.milvus.BoolR" - "esponse\"\000\022[\n\016LoadPartitions\022*.milvus.pro" - "to.milvus.LoadPartitionsRequest\032\033.milvus" - ".proto.common.Status\"\000\022a\n\021ReleasePartiti" - "ons\022-.milvus.proto.milvus.ReleasePartiti" - "onsRequest\032\033.milvus.proto.common.Status\"" - "\000\022\203\001\n\026GetPartitionStatistics\0222.milvus.pr" - "oto.milvus.GetPartitionStatisticsRequest" - "\0323.milvus.proto.milvus.GetPartitionStati" - "sticsResponse\"\000\022k\n\016ShowPartitions\022*.milv" - "us.proto.milvus.ShowPartitionsRequest\032+." - "milvus.proto.milvus.ShowPartitionsRespon" - "se\"\000\022U\n\013CreateIndex\022\'.milvus.proto.milvu" - "s.CreateIndexRequest\032\033.milvus.proto.comm" - "on.Status\"\000\022h\n\rDescribeIndex\022).milvus.pr" - "oto.milvus.DescribeIndexRequest\032*.milvus" - ".proto.milvus.DescribeIndexResponse\"\000\022h\n" - "\rGetIndexState\022).milvus.proto.milvus.Get" - "IndexStateRequest\032*.milvus.proto.milvus." - "GetIndexStateResponse\"\000\022\200\001\n\025GetIndexBuil" - "dProgress\0221.milvus.proto.milvus.GetIndex" - "BuildProgressRequest\0322.milvus.proto.milv" - "us.GetIndexBuildProgressResponse\"\000\022Q\n\tDr" - "opIndex\022%.milvus.proto.milvus.DropIndexR" - "equest\032\033.milvus.proto.common.Status\"\000\022S\n" - "\006Insert\022\".milvus.proto.milvus.InsertRequ" - "est\032#.milvus.proto.milvus.MutationResult" - "\"\000\022R\n\006Search\022\".milvus.proto.milvus.Searc" - "hRequest\032\".milvus.proto.milvus.SearchRes" - "ults\"\000\022X\n\010Retrieve\022$.milvus.proto.milvus" - ".RetrieveRequest\032$.milvus.proto.milvus.R" - "etrieveResults\"\000\022I\n\005Flush\022!.milvus.proto" - ".milvus.FlushRequest\032\033.milvus.proto.comm" - "on.Status\"\000\022O\n\005Query\022!.milvus.proto.milv" - "us.QueryRequest\032!.milvus.proto.milvus.Qu" - "eryResults\"\000\022\211\001\n\030GetPersistentSegmentInf" - "o\0224.milvus.proto.milvus.GetPersistentSeg" - "mentInfoRequest\0325.milvus.proto.milvus.Ge" - "tPersistentSegmentInfoResponse\"\000\022z\n\023GetQ" - "uerySegmentInfo\022/.milvus.proto.milvus.Ge" - "tQuerySegmentInfoRequest\0320.milvus.proto." - "milvus.GetQuerySegmentInfoResponse\"\000\022P\n\005" - "Dummy\022!.milvus.proto.milvus.DummyRequest" - "\032\".milvus.proto.milvus.DummyResponse\"\000\022e" - "\n\014RegisterLink\022(.milvus.proto.milvus.Reg" - "isterLinkRequest\032).milvus.proto.milvus.R" - "egisterLinkResponse\"\0002u\n\014ProxyService\022e\n" - "\014RegisterLink\022(.milvus.proto.milvus.Regi" - "sterLinkRequest\032).milvus.proto.milvus.Re" - "gisterLinkResponse\"\000B5Z3github.com/milvu" - "s-io/milvus/internal/proto/milvuspbb\006pro" - "to3" + "\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_name\030\003 \001" + "(\t\022\027\n\017partition_names\030\004 \003(\t\022%\n\003ids\030\005 \001(\013" + "2\030.milvus.proto.schema.IDs\022\025\n\routput_fie" + "lds\030\006 \003(\t\022\030\n\020travel_timestamp\030\007 \001(\004\"\232\001\n\017" + "RetrieveResults\022+\n\006status\030\001 \001(\0132\033.milvus" + ".proto.common.Status\022%\n\003ids\030\002 \001(\0132\030.milv" + "us.proto.schema.IDs\0223\n\013fields_data\030\003 \003(\013" + "2\036.milvus.proto.schema.FieldData\"5\n\004Hits" + "\022\013\n\003IDs\030\001 \003(\003\022\020\n\010row_data\030\002 \003(\014\022\016\n\006score" + "s\030\003 \003(\002\"t\n\rSearchResults\022+\n\006status\030\001 \001(\013" + "2\033.milvus.proto.common.Status\0226\n\007results" + "\030\002 \001(\0132%.milvus.proto.schema.SearchResul" + "tData\"e\n\014FlushRequest\022*\n\004base\030\001 \001(\0132\034.mi" + "lvus.proto.common.MsgBase\022\017\n\007db_name\030\002 \001" + "(\t\022\030\n\020collection_names\030\003 \003(\t\"\242\001\n\014QueryRe" + "quest\022*\n\004base\030\001 \001(\0132\034.milvus.proto.commo" + "n.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection" + "_name\030\003 \001(\t\022\014\n\004expr\030\004 \001(\t\022\025\n\routput_fiel" + "ds\030\005 \003(\t\022\027\n\017partition_names\030\006 \003(\t\"p\n\014Que" + "ryResults\022+\n\006status\030\001 \001(\0132\033.milvus.proto" + ".common.Status\0223\n\013fields_data\030\002 \003(\0132\036.mi" + "lvus.proto.schema.FieldData\"\231\001\n\025Persiste" + "ntSegmentInfo\022\021\n\tsegmentID\030\001 \001(\003\022\024\n\014coll" + "ectionID\030\002 \001(\003\022\023\n\013partitionID\030\003 \001(\003\022\020\n\010n" + "um_rows\030\004 \001(\003\0220\n\005state\030\005 \001(\0162!.milvus.pr" + "oto.common.SegmentState\"u\n\037GetPersistent" + "SegmentInfoRequest\022*\n\004base\030\001 \001(\0132\034.milvu" + "s.proto.common.MsgBase\022\016\n\006dbName\030\002 \001(\t\022\026" + "\n\016collectionName\030\003 \001(\t\"\212\001\n GetPersistent" + "SegmentInfoResponse\022+\n\006status\030\001 \001(\0132\033.mi" + "lvus.proto.common.Status\0229\n\005infos\030\002 \003(\0132" + "*.milvus.proto.milvus.PersistentSegmentI" + "nfo\"\231\001\n\020QuerySegmentInfo\022\021\n\tsegmentID\030\001 " + "\001(\003\022\024\n\014collectionID\030\002 \001(\003\022\023\n\013partitionID" + "\030\003 \001(\003\022\020\n\010mem_size\030\004 \001(\003\022\020\n\010num_rows\030\005 \001" + "(\003\022\022\n\nindex_name\030\006 \001(\t\022\017\n\007indexID\030\007 \001(\003\"" + "p\n\032GetQuerySegmentInfoRequest\022*\n\004base\030\001 " + "\001(\0132\034.milvus.proto.common.MsgBase\022\016\n\006dbN" + "ame\030\002 \001(\t\022\026\n\016collectionName\030\003 \001(\t\"\200\001\n\033Ge" + "tQuerySegmentInfoResponse\022+\n\006status\030\001 \001(" + "\0132\033.milvus.proto.common.Status\0224\n\005infos\030" + "\002 \003(\0132%.milvus.proto.milvus.QuerySegment" + "Info\"$\n\014DummyRequest\022\024\n\014request_type\030\001 \001" + "(\t\"!\n\rDummyResponse\022\020\n\010response\030\001 \001(\t\"\025\n" + "\023RegisterLinkRequest\"r\n\024RegisterLinkResp" + "onse\022-\n\007address\030\001 \001(\0132\034.milvus.proto.com" + "mon.Address\022+\n\006status\030\002 \001(\0132\033.milvus.pro" + "to.common.Status*,\n\023ShowCollectionsType\022" + "\007\n\003All\020\000\022\014\n\010InMemory\020\001*>\n\017PlaceholderTyp" + "e\022\010\n\004None\020\000\022\020\n\014BinaryVector\020d\022\017\n\013FloatVe" + "ctor\020e2\215\027\n\rMilvusService\022_\n\020CreateCollec" + "tion\022,.milvus.proto.milvus.CreateCollect" + "ionRequest\032\033.milvus.proto.common.Status\"" + "\000\022[\n\016DropCollection\022*.milvus.proto.milvu" + "s.DropCollectionRequest\032\033.milvus.proto.c" + "ommon.Status\"\000\022_\n\rHasCollection\022).milvus" + ".proto.milvus.HasCollectionRequest\032!.mil" + "vus.proto.milvus.BoolResponse\"\000\022[\n\016LoadC" + "ollection\022*.milvus.proto.milvus.LoadColl" + "ectionRequest\032\033.milvus.proto.common.Stat" + "us\"\000\022a\n\021ReleaseCollection\022-.milvus.proto" + ".milvus.ReleaseCollectionRequest\032\033.milvu" + "s.proto.common.Status\"\000\022w\n\022DescribeColle" + "ction\022..milvus.proto.milvus.DescribeColl" + "ectionRequest\032/.milvus.proto.milvus.Desc" + "ribeCollectionResponse\"\000\022\206\001\n\027GetCollecti" + "onStatistics\0223.milvus.proto.milvus.GetCo" + "llectionStatisticsRequest\0324.milvus.proto" + ".milvus.GetCollectionStatisticsResponse\"" + "\000\022n\n\017ShowCollections\022+.milvus.proto.milv" + "us.ShowCollectionsRequest\032,.milvus.proto" + ".milvus.ShowCollectionsResponse\"\000\022]\n\017Cre" + "atePartition\022+.milvus.proto.milvus.Creat" + "ePartitionRequest\032\033.milvus.proto.common." + "Status\"\000\022Y\n\rDropPartition\022).milvus.proto" + ".milvus.DropPartitionRequest\032\033.milvus.pr" + "oto.common.Status\"\000\022]\n\014HasPartition\022(.mi" + "lvus.proto.milvus.HasPartitionRequest\032!." + "milvus.proto.milvus.BoolResponse\"\000\022[\n\016Lo" + "adPartitions\022*.milvus.proto.milvus.LoadP" + "artitionsRequest\032\033.milvus.proto.common.S" + "tatus\"\000\022a\n\021ReleasePartitions\022-.milvus.pr" + "oto.milvus.ReleasePartitionsRequest\032\033.mi" + "lvus.proto.common.Status\"\000\022\203\001\n\026GetPartit" + "ionStatistics\0222.milvus.proto.milvus.GetP" + "artitionStatisticsRequest\0323.milvus.proto" + ".milvus.GetPartitionStatisticsResponse\"\000" + "\022k\n\016ShowPartitions\022*.milvus.proto.milvus" + ".ShowPartitionsRequest\032+.milvus.proto.mi" + "lvus.ShowPartitionsResponse\"\000\022U\n\013CreateI" + "ndex\022\'.milvus.proto.milvus.CreateIndexRe" + "quest\032\033.milvus.proto.common.Status\"\000\022h\n\r" + "DescribeIndex\022).milvus.proto.milvus.Desc" + "ribeIndexRequest\032*.milvus.proto.milvus.D" + "escribeIndexResponse\"\000\022h\n\rGetIndexState\022" + ").milvus.proto.milvus.GetIndexStateReque" + "st\032*.milvus.proto.milvus.GetIndexStateRe" + "sponse\"\000\022\200\001\n\025GetIndexBuildProgress\0221.mil" + "vus.proto.milvus.GetIndexBuildProgressRe" + "quest\0322.milvus.proto.milvus.GetIndexBuil" + "dProgressResponse\"\000\022Q\n\tDropIndex\022%.milvu" + "s.proto.milvus.DropIndexRequest\032\033.milvus" + ".proto.common.Status\"\000\022S\n\006Insert\022\".milvu" + "s.proto.milvus.InsertRequest\032#.milvus.pr" + "oto.milvus.MutationResult\"\000\022R\n\006Search\022\"." + "milvus.proto.milvus.SearchRequest\032\".milv" + "us.proto.milvus.SearchResults\"\000\022X\n\010Retri" + "eve\022$.milvus.proto.milvus.RetrieveReques" + "t\032$.milvus.proto.milvus.RetrieveResults\"" + "\000\022I\n\005Flush\022!.milvus.proto.milvus.FlushRe" + "quest\032\033.milvus.proto.common.Status\"\000\022O\n\005" + "Query\022!.milvus.proto.milvus.QueryRequest" + "\032!.milvus.proto.milvus.QueryResults\"\000\022\211\001" + "\n\030GetPersistentSegmentInfo\0224.milvus.prot" + "o.milvus.GetPersistentSegmentInfoRequest" + "\0325.milvus.proto.milvus.GetPersistentSegm" + "entInfoResponse\"\000\022z\n\023GetQuerySegmentInfo" + "\022/.milvus.proto.milvus.GetQuerySegmentIn" + "foRequest\0320.milvus.proto.milvus.GetQuery" + "SegmentInfoResponse\"\000\022P\n\005Dummy\022!.milvus." + "proto.milvus.DummyRequest\032\".milvus.proto" + ".milvus.DummyResponse\"\000\022e\n\014RegisterLink\022" + "(.milvus.proto.milvus.RegisterLinkReques" + "t\032).milvus.proto.milvus.RegisterLinkResp" + "onse\"\0002u\n\014ProxyService\022e\n\014RegisterLink\022(" + ".milvus.proto.milvus.RegisterLinkRequest" + "\032).milvus.proto.milvus.RegisterLinkRespo" + "nse\"\000B5Z3github.com/milvus-io/milvus/int" + "ernal/proto/milvuspbb\006proto3" ; static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_milvus_2eproto_deps[2] = { &::descriptor_table_common_2eproto, @@ -2079,7 +2083,7 @@ static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_mil static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_milvus_2eproto_once; static bool descriptor_table_milvus_2eproto_initialized = false; const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_milvus_2eproto = { - &descriptor_table_milvus_2eproto_initialized, descriptor_table_protodef_milvus_2eproto, "milvus.proto", 10803, + &descriptor_table_milvus_2eproto_initialized, descriptor_table_protodef_milvus_2eproto, "milvus.proto", 10868, &descriptor_table_milvus_2eproto_once, descriptor_table_milvus_2eproto_sccs, descriptor_table_milvus_2eproto_deps, 57, 2, schemas, file_default_instances, TableStruct_milvus_2eproto::offsets, file_level_metadata_milvus_2eproto, 57, file_level_enum_descriptors_milvus_2eproto, file_level_service_descriptors_milvus_2eproto, @@ -18882,6 +18886,7 @@ SearchRequest::SearchRequest(const SearchRequest& from) : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr), partition_names_(from.partition_names_), + output_fields_(from.output_fields_), search_params_(from.search_params_) { _internal_metadata_.MergeFrom(from._internal_metadata_); db_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); @@ -18951,6 +18956,7 @@ void SearchRequest::Clear() { (void) cached_has_bits; partition_names_.Clear(); + output_fields_.Clear(); search_params_.Clear(); db_name_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); collection_name_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); @@ -19029,21 +19035,33 @@ const char* SearchRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ set_dsl_type(static_cast<::milvus::proto::common::DslType>(val)); } else goto handle_unusual; continue; - // repeated .milvus.proto.common.KeyValuePair search_params = 8; + // repeated string output_fields = 8; case 8: if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) { + ptr -= 1; + do { + ptr += 1; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(add_output_fields(), ptr, ctx, "milvus.proto.milvus.SearchRequest.output_fields"); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 66); + } else goto handle_unusual; + continue; + // repeated .milvus.proto.common.KeyValuePair search_params = 9; + case 9: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) { ptr -= 1; do { ptr += 1; ptr = ctx->ParseMessage(add_search_params(), ptr); CHK_(ptr); if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 66); + } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 74); } else goto handle_unusual; continue; - // uint64 travel_timestamp = 9; - case 9: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 72)) { + // uint64 travel_timestamp = 10; + case 10: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) { travel_timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); CHK_(ptr); } else goto handle_unusual; @@ -19175,9 +19193,25 @@ bool SearchRequest::MergePartialFromCodedStream( break; } - // repeated .milvus.proto.common.KeyValuePair search_params = 8; + // repeated string output_fields = 8; case 8: { if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (66 & 0xFF)) { + DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString( + input, this->add_output_fields())); + DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->output_fields(this->output_fields_size() - 1).data(), + static_cast(this->output_fields(this->output_fields_size() - 1).length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, + "milvus.proto.milvus.SearchRequest.output_fields")); + } else { + goto handle_unusual; + } + break; + } + + // repeated .milvus.proto.common.KeyValuePair search_params = 9; + case 9: { + if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (74 & 0xFF)) { DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage( input, add_search_params())); } else { @@ -19186,9 +19220,9 @@ bool SearchRequest::MergePartialFromCodedStream( break; } - // uint64 travel_timestamp = 9; - case 9: { - if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (72 & 0xFF)) { + // uint64 travel_timestamp = 10; + case 10: { + if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (80 & 0xFF)) { DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive< ::PROTOBUF_NAMESPACE_ID::uint64, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_UINT64>( @@ -19284,18 +19318,28 @@ void SearchRequest::SerializeWithCachedSizes( 7, this->dsl_type(), output); } - // repeated .milvus.proto.common.KeyValuePair search_params = 8; + // repeated string output_fields = 8; + for (int i = 0, n = this->output_fields_size(); i < n; i++) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->output_fields(i).data(), static_cast(this->output_fields(i).length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "milvus.proto.milvus.SearchRequest.output_fields"); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteString( + 8, this->output_fields(i), output); + } + + // repeated .milvus.proto.common.KeyValuePair search_params = 9; for (unsigned int i = 0, n = static_cast(this->search_params_size()); i < n; i++) { ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray( - 8, + 9, this->search_params(static_cast(i)), output); } - // uint64 travel_timestamp = 9; + // uint64 travel_timestamp = 10; if (this->travel_timestamp() != 0) { - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64(9, this->travel_timestamp(), output); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64(10, this->travel_timestamp(), output); } if (_internal_metadata_.have_unknown_fields()) { @@ -19374,17 +19418,27 @@ void SearchRequest::SerializeWithCachedSizes( 7, this->dsl_type(), target); } - // repeated .milvus.proto.common.KeyValuePair search_params = 8; + // repeated string output_fields = 8; + for (int i = 0, n = this->output_fields_size(); i < n; i++) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->output_fields(i).data(), static_cast(this->output_fields(i).length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "milvus.proto.milvus.SearchRequest.output_fields"); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + WriteStringToArray(8, this->output_fields(i), target); + } + + // repeated .milvus.proto.common.KeyValuePair search_params = 9; for (unsigned int i = 0, n = static_cast(this->search_params_size()); i < n; i++) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: InternalWriteMessageToArray( - 8, this->search_params(static_cast(i)), target); + 9, this->search_params(static_cast(i)), target); } - // uint64 travel_timestamp = 9; + // uint64 travel_timestamp = 10; if (this->travel_timestamp() != 0) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64ToArray(9, this->travel_timestamp(), target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64ToArray(10, this->travel_timestamp(), target); } if (_internal_metadata_.have_unknown_fields()) { @@ -19416,7 +19470,15 @@ size_t SearchRequest::ByteSizeLong() const { this->partition_names(i)); } - // repeated .milvus.proto.common.KeyValuePair search_params = 8; + // repeated string output_fields = 8; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->output_fields_size()); + for (int i = 0, n = this->output_fields_size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->output_fields(i)); + } + + // repeated .milvus.proto.common.KeyValuePair search_params = 9; { unsigned int count = static_cast(this->search_params_size()); total_size += 1UL * count; @@ -19462,7 +19524,7 @@ size_t SearchRequest::ByteSizeLong() const { *base_); } - // uint64 travel_timestamp = 9; + // uint64 travel_timestamp = 10; if (this->travel_timestamp() != 0) { total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt64Size( @@ -19503,6 +19565,7 @@ void SearchRequest::MergeFrom(const SearchRequest& from) { (void) cached_has_bits; partition_names_.MergeFrom(from.partition_names_); + output_fields_.MergeFrom(from.output_fields_); search_params_.MergeFrom(from.search_params_); if (from.db_name().size() > 0) { @@ -19553,6 +19616,7 @@ void SearchRequest::InternalSwap(SearchRequest* other) { using std::swap; _internal_metadata_.Swap(&other->_internal_metadata_); partition_names_.InternalSwap(CastToBase(&other->partition_names_)); + output_fields_.InternalSwap(CastToBase(&other->output_fields_)); CastToBase(&search_params_)->InternalSwap(CastToBase(&other->search_params_)); db_name_.Swap(&other->db_name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); @@ -20991,22 +21055,35 @@ void Hits::InternalSwap(Hits* other) { void SearchResults::InitAsDefaultInstance() { ::milvus::proto::milvus::_SearchResults_default_instance_._instance.get_mutable()->status_ = const_cast< ::milvus::proto::common::Status*>( ::milvus::proto::common::Status::internal_default_instance()); + ::milvus::proto::milvus::_SearchResults_default_instance_._instance.get_mutable()->results_ = const_cast< ::milvus::proto::schema::SearchResultData*>( + ::milvus::proto::schema::SearchResultData::internal_default_instance()); } class SearchResults::_Internal { public: static const ::milvus::proto::common::Status& status(const SearchResults* msg); + static const ::milvus::proto::schema::SearchResultData& results(const SearchResults* msg); }; const ::milvus::proto::common::Status& SearchResults::_Internal::status(const SearchResults* msg) { return *msg->status_; } +const ::milvus::proto::schema::SearchResultData& +SearchResults::_Internal::results(const SearchResults* msg) { + return *msg->results_; +} void SearchResults::clear_status() { if (GetArenaNoVirtual() == nullptr && status_ != nullptr) { delete status_; } status_ = nullptr; } +void SearchResults::clear_results() { + if (GetArenaNoVirtual() == nullptr && results_ != nullptr) { + delete results_; + } + results_ = nullptr; +} SearchResults::SearchResults() : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { SharedCtor(); @@ -21014,20 +21091,26 @@ SearchResults::SearchResults() } SearchResults::SearchResults(const SearchResults& from) : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(nullptr), - hits_(from.hits_) { + _internal_metadata_(nullptr) { _internal_metadata_.MergeFrom(from._internal_metadata_); if (from.has_status()) { status_ = new ::milvus::proto::common::Status(*from.status_); } else { status_ = nullptr; } + if (from.has_results()) { + results_ = new ::milvus::proto::schema::SearchResultData(*from.results_); + } else { + results_ = nullptr; + } // @@protoc_insertion_point(copy_constructor:milvus.proto.milvus.SearchResults) } void SearchResults::SharedCtor() { ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SearchResults_milvus_2eproto.base); - status_ = nullptr; + ::memset(&status_, 0, static_cast( + reinterpret_cast(&results_) - + reinterpret_cast(&status_)) + sizeof(results_)); } SearchResults::~SearchResults() { @@ -21037,6 +21120,7 @@ SearchResults::~SearchResults() { void SearchResults::SharedDtor() { if (this != internal_default_instance()) delete status_; + if (this != internal_default_instance()) delete results_; } void SearchResults::SetCachedSize(int size) const { @@ -21054,11 +21138,14 @@ void SearchResults::Clear() { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; - hits_.Clear(); if (GetArenaNoVirtual() == nullptr && status_ != nullptr) { delete status_; } status_ = nullptr; + if (GetArenaNoVirtual() == nullptr && results_ != nullptr) { + delete results_; + } + results_ = nullptr; _internal_metadata_.Clear(); } @@ -21077,16 +21164,11 @@ const char* SearchResults::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ CHK_(ptr); } else goto handle_unusual; continue; - // repeated bytes hits = 2; + // .milvus.proto.schema.SearchResultData results = 2; case 2: if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { - ptr -= 1; - do { - ptr += 1; - ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(add_hits(), ptr, ctx); - CHK_(ptr); - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 18); + ptr = ctx->ParseMessage(mutable_results(), ptr); + CHK_(ptr); } else goto handle_unusual; continue; default: { @@ -21130,11 +21212,11 @@ bool SearchResults::MergePartialFromCodedStream( break; } - // repeated bytes hits = 2; + // .milvus.proto.schema.SearchResultData results = 2; case 2: { if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) { - DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadBytes( - input, this->add_hits())); + DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage( + input, mutable_results())); } else { goto handle_unusual; } @@ -21174,10 +21256,10 @@ void SearchResults::SerializeWithCachedSizes( 1, _Internal::status(this), output); } - // repeated bytes hits = 2; - for (int i = 0, n = this->hits_size(); i < n; i++) { - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBytes( - 2, this->hits(i), output); + // .milvus.proto.schema.SearchResultData results = 2; + if (this->has_results()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray( + 2, _Internal::results(this), output); } if (_internal_metadata_.have_unknown_fields()) { @@ -21200,10 +21282,11 @@ void SearchResults::SerializeWithCachedSizes( 1, _Internal::status(this), target); } - // repeated bytes hits = 2; - for (int i = 0, n = this->hits_size(); i < n; i++) { + // .milvus.proto.schema.SearchResultData results = 2; + if (this->has_results()) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - WriteBytesToArray(2, this->hits(i), target); + InternalWriteMessageToArray( + 2, _Internal::results(this), target); } if (_internal_metadata_.have_unknown_fields()) { @@ -21227,14 +21310,6 @@ size_t SearchResults::ByteSizeLong() const { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; - // repeated bytes hits = 2; - total_size += 1 * - ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->hits_size()); - for (int i = 0, n = this->hits_size(); i < n; i++) { - total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize( - this->hits(i)); - } - // .milvus.proto.common.Status status = 1; if (this->has_status()) { total_size += 1 + @@ -21242,6 +21317,13 @@ size_t SearchResults::ByteSizeLong() const { *status_); } + // .milvus.proto.schema.SearchResultData results = 2; + if (this->has_results()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *results_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); SetCachedSize(cached_size); return total_size; @@ -21269,10 +21351,12 @@ void SearchResults::MergeFrom(const SearchResults& from) { ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; (void) cached_has_bits; - hits_.MergeFrom(from.hits_); if (from.has_status()) { mutable_status()->::milvus::proto::common::Status::MergeFrom(from.status()); } + if (from.has_results()) { + mutable_results()->::milvus::proto::schema::SearchResultData::MergeFrom(from.results()); + } } void SearchResults::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { @@ -21296,8 +21380,8 @@ bool SearchResults::IsInitialized() const { void SearchResults::InternalSwap(SearchResults* other) { using std::swap; _internal_metadata_.Swap(&other->_internal_metadata_); - hits_.InternalSwap(CastToBase(&other->hits_)); swap(status_, other->status_); + swap(results_, other->results_); } ::PROTOBUF_NAMESPACE_ID::Metadata SearchResults::GetMetadata() const { diff --git a/internal/core/src/pb/milvus.pb.h b/internal/core/src/pb/milvus.pb.h index d65e39f671..e392ac5f18 100644 --- a/internal/core/src/pb/milvus.pb.h +++ b/internal/core/src/pb/milvus.pb.h @@ -6957,13 +6957,14 @@ class SearchRequest : enum : int { kPartitionNamesFieldNumber = 4, - kSearchParamsFieldNumber = 8, + kOutputFieldsFieldNumber = 8, + kSearchParamsFieldNumber = 9, kDbNameFieldNumber = 2, kCollectionNameFieldNumber = 3, kDslFieldNumber = 5, kPlaceholderGroupFieldNumber = 6, kBaseFieldNumber = 1, - kTravelTimestampFieldNumber = 9, + kTravelTimestampFieldNumber = 10, kDslTypeFieldNumber = 7, }; // repeated string partition_names = 4; @@ -6983,7 +6984,24 @@ class SearchRequest : const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& partition_names() const; ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* mutable_partition_names(); - // repeated .milvus.proto.common.KeyValuePair search_params = 8; + // repeated string output_fields = 8; + int output_fields_size() const; + void clear_output_fields(); + const std::string& output_fields(int index) const; + std::string* mutable_output_fields(int index); + void set_output_fields(int index, const std::string& value); + void set_output_fields(int index, std::string&& value); + void set_output_fields(int index, const char* value); + void set_output_fields(int index, const char* value, size_t size); + std::string* add_output_fields(); + void add_output_fields(const std::string& value); + void add_output_fields(std::string&& value); + void add_output_fields(const char* value); + void add_output_fields(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& output_fields() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* mutable_output_fields(); + + // repeated .milvus.proto.common.KeyValuePair search_params = 9; int search_params_size() const; void clear_search_params(); ::milvus::proto::common::KeyValuePair* mutable_search_params(int index); @@ -7046,7 +7064,7 @@ class SearchRequest : ::milvus::proto::common::MsgBase* mutable_base(); void set_allocated_base(::milvus::proto::common::MsgBase* base); - // uint64 travel_timestamp = 9; + // uint64 travel_timestamp = 10; void clear_travel_timestamp(); ::PROTOBUF_NAMESPACE_ID::uint64 travel_timestamp() const; void set_travel_timestamp(::PROTOBUF_NAMESPACE_ID::uint64 value); @@ -7062,6 +7080,7 @@ class SearchRequest : ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField partition_names_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField output_fields_; ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::common::KeyValuePair > search_params_; ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr db_name_; ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr collection_name_; @@ -7731,26 +7750,9 @@ class SearchResults : // accessors ------------------------------------------------------- enum : int { - kHitsFieldNumber = 2, kStatusFieldNumber = 1, + kResultsFieldNumber = 2, }; - // repeated bytes hits = 2; - int hits_size() const; - void clear_hits(); - const std::string& hits(int index) const; - std::string* mutable_hits(int index); - void set_hits(int index, const std::string& value); - void set_hits(int index, std::string&& value); - void set_hits(int index, const char* value); - void set_hits(int index, const void* value, size_t size); - std::string* add_hits(); - void add_hits(const std::string& value); - void add_hits(std::string&& value); - void add_hits(const char* value); - void add_hits(const void* value, size_t size); - const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& hits() const; - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* mutable_hits(); - // .milvus.proto.common.Status status = 1; bool has_status() const; void clear_status(); @@ -7759,13 +7761,21 @@ class SearchResults : ::milvus::proto::common::Status* mutable_status(); void set_allocated_status(::milvus::proto::common::Status* status); + // .milvus.proto.schema.SearchResultData results = 2; + bool has_results() const; + void clear_results(); + const ::milvus::proto::schema::SearchResultData& results() const; + ::milvus::proto::schema::SearchResultData* release_results(); + ::milvus::proto::schema::SearchResultData* mutable_results(); + void set_allocated_results(::milvus::proto::schema::SearchResultData* results); + // @@protoc_insertion_point(class_scope:milvus.proto.milvus.SearchResults) private: class _Internal; ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField hits_; ::milvus::proto::common::Status* status_; + ::milvus::proto::schema::SearchResultData* results_; mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; friend struct ::TableStruct_milvus_2eproto; }; @@ -16258,7 +16268,72 @@ inline void SearchRequest::set_dsl_type(::milvus::proto::common::DslType value) // @@protoc_insertion_point(field_set:milvus.proto.milvus.SearchRequest.dsl_type) } -// repeated .milvus.proto.common.KeyValuePair search_params = 8; +// repeated string output_fields = 8; +inline int SearchRequest::output_fields_size() const { + return output_fields_.size(); +} +inline void SearchRequest::clear_output_fields() { + output_fields_.Clear(); +} +inline const std::string& SearchRequest::output_fields(int index) const { + // @@protoc_insertion_point(field_get:milvus.proto.milvus.SearchRequest.output_fields) + return output_fields_.Get(index); +} +inline std::string* SearchRequest::mutable_output_fields(int index) { + // @@protoc_insertion_point(field_mutable:milvus.proto.milvus.SearchRequest.output_fields) + return output_fields_.Mutable(index); +} +inline void SearchRequest::set_output_fields(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:milvus.proto.milvus.SearchRequest.output_fields) + output_fields_.Mutable(index)->assign(value); +} +inline void SearchRequest::set_output_fields(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:milvus.proto.milvus.SearchRequest.output_fields) + output_fields_.Mutable(index)->assign(std::move(value)); +} +inline void SearchRequest::set_output_fields(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + output_fields_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:milvus.proto.milvus.SearchRequest.output_fields) +} +inline void SearchRequest::set_output_fields(int index, const char* value, size_t size) { + output_fields_.Mutable(index)->assign( + reinterpret_cast(value), size); + // @@protoc_insertion_point(field_set_pointer:milvus.proto.milvus.SearchRequest.output_fields) +} +inline std::string* SearchRequest::add_output_fields() { + // @@protoc_insertion_point(field_add_mutable:milvus.proto.milvus.SearchRequest.output_fields) + return output_fields_.Add(); +} +inline void SearchRequest::add_output_fields(const std::string& value) { + output_fields_.Add()->assign(value); + // @@protoc_insertion_point(field_add:milvus.proto.milvus.SearchRequest.output_fields) +} +inline void SearchRequest::add_output_fields(std::string&& value) { + output_fields_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:milvus.proto.milvus.SearchRequest.output_fields) +} +inline void SearchRequest::add_output_fields(const char* value) { + GOOGLE_DCHECK(value != nullptr); + output_fields_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:milvus.proto.milvus.SearchRequest.output_fields) +} +inline void SearchRequest::add_output_fields(const char* value, size_t size) { + output_fields_.Add()->assign(reinterpret_cast(value), size); + // @@protoc_insertion_point(field_add_pointer:milvus.proto.milvus.SearchRequest.output_fields) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& +SearchRequest::output_fields() const { + // @@protoc_insertion_point(field_list:milvus.proto.milvus.SearchRequest.output_fields) + return output_fields_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* +SearchRequest::mutable_output_fields() { + // @@protoc_insertion_point(field_mutable_list:milvus.proto.milvus.SearchRequest.output_fields) + return &output_fields_; +} + +// repeated .milvus.proto.common.KeyValuePair search_params = 9; inline int SearchRequest::search_params_size() const { return search_params_.size(); } @@ -16285,7 +16360,7 @@ SearchRequest::search_params() const { return search_params_; } -// uint64 travel_timestamp = 9; +// uint64 travel_timestamp = 10; inline void SearchRequest::clear_travel_timestamp() { travel_timestamp_ = PROTOBUF_ULONGLONG(0); } @@ -16938,69 +17013,49 @@ inline void SearchResults::set_allocated_status(::milvus::proto::common::Status* // @@protoc_insertion_point(field_set_allocated:milvus.proto.milvus.SearchResults.status) } -// repeated bytes hits = 2; -inline int SearchResults::hits_size() const { - return hits_.size(); +// .milvus.proto.schema.SearchResultData results = 2; +inline bool SearchResults::has_results() const { + return this != internal_default_instance() && results_ != nullptr; } -inline void SearchResults::clear_hits() { - hits_.Clear(); +inline const ::milvus::proto::schema::SearchResultData& SearchResults::results() const { + const ::milvus::proto::schema::SearchResultData* p = results_; + // @@protoc_insertion_point(field_get:milvus.proto.milvus.SearchResults.results) + return p != nullptr ? *p : *reinterpret_cast( + &::milvus::proto::schema::_SearchResultData_default_instance_); } -inline const std::string& SearchResults::hits(int index) const { - // @@protoc_insertion_point(field_get:milvus.proto.milvus.SearchResults.hits) - return hits_.Get(index); +inline ::milvus::proto::schema::SearchResultData* SearchResults::release_results() { + // @@protoc_insertion_point(field_release:milvus.proto.milvus.SearchResults.results) + + ::milvus::proto::schema::SearchResultData* temp = results_; + results_ = nullptr; + return temp; } -inline std::string* SearchResults::mutable_hits(int index) { - // @@protoc_insertion_point(field_mutable:milvus.proto.milvus.SearchResults.hits) - return hits_.Mutable(index); +inline ::milvus::proto::schema::SearchResultData* SearchResults::mutable_results() { + + if (results_ == nullptr) { + auto* p = CreateMaybeMessage<::milvus::proto::schema::SearchResultData>(GetArenaNoVirtual()); + results_ = p; + } + // @@protoc_insertion_point(field_mutable:milvus.proto.milvus.SearchResults.results) + return results_; } -inline void SearchResults::set_hits(int index, const std::string& value) { - // @@protoc_insertion_point(field_set:milvus.proto.milvus.SearchResults.hits) - hits_.Mutable(index)->assign(value); -} -inline void SearchResults::set_hits(int index, std::string&& value) { - // @@protoc_insertion_point(field_set:milvus.proto.milvus.SearchResults.hits) - hits_.Mutable(index)->assign(std::move(value)); -} -inline void SearchResults::set_hits(int index, const char* value) { - GOOGLE_DCHECK(value != nullptr); - hits_.Mutable(index)->assign(value); - // @@protoc_insertion_point(field_set_char:milvus.proto.milvus.SearchResults.hits) -} -inline void SearchResults::set_hits(int index, const void* value, size_t size) { - hits_.Mutable(index)->assign( - reinterpret_cast(value), size); - // @@protoc_insertion_point(field_set_pointer:milvus.proto.milvus.SearchResults.hits) -} -inline std::string* SearchResults::add_hits() { - // @@protoc_insertion_point(field_add_mutable:milvus.proto.milvus.SearchResults.hits) - return hits_.Add(); -} -inline void SearchResults::add_hits(const std::string& value) { - hits_.Add()->assign(value); - // @@protoc_insertion_point(field_add:milvus.proto.milvus.SearchResults.hits) -} -inline void SearchResults::add_hits(std::string&& value) { - hits_.Add(std::move(value)); - // @@protoc_insertion_point(field_add:milvus.proto.milvus.SearchResults.hits) -} -inline void SearchResults::add_hits(const char* value) { - GOOGLE_DCHECK(value != nullptr); - hits_.Add()->assign(value); - // @@protoc_insertion_point(field_add_char:milvus.proto.milvus.SearchResults.hits) -} -inline void SearchResults::add_hits(const void* value, size_t size) { - hits_.Add()->assign(reinterpret_cast(value), size); - // @@protoc_insertion_point(field_add_pointer:milvus.proto.milvus.SearchResults.hits) -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& -SearchResults::hits() const { - // @@protoc_insertion_point(field_list:milvus.proto.milvus.SearchResults.hits) - return hits_; -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* -SearchResults::mutable_hits() { - // @@protoc_insertion_point(field_mutable_list:milvus.proto.milvus.SearchResults.hits) - return &hits_; +inline void SearchResults::set_allocated_results(::milvus::proto::schema::SearchResultData* results) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual(); + if (message_arena == nullptr) { + delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(results_); + } + if (results) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + results = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, results, submessage_arena); + } + + } else { + + } + results_ = results; + // @@protoc_insertion_point(field_set_allocated:milvus.proto.milvus.SearchResults.results) } // ------------------------------------------------------------------- diff --git a/internal/core/src/pb/plan.pb.cc b/internal/core/src/pb/plan.pb.cc index 40a3013a65..5daed8f1dc 100644 --- a/internal/core/src/pb/plan.pb.cc +++ b/internal/core/src/pb/plan.pb.cc @@ -296,6 +296,7 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_plan_2eproto::offsets[] PROTOB PROTOBUF_FIELD_OFFSET(::milvus::proto::plan::PlanNode, _oneof_case_[0]), ~0u, // no _weak_field_map_ offsetof(::milvus::proto::plan::PlanNodeDefaultTypeInternal, vector_anns_), + PROTOBUF_FIELD_OFFSET(::milvus::proto::plan::PlanNode, output_field_ids_), PROTOBUF_FIELD_OFFSET(::milvus::proto::plan::PlanNode, node_), }; static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { @@ -361,10 +362,11 @@ const char descriptor_table_protodef_plan_2eproto[] PROTOBUF_SECTION_VARIABLE(pr "eld_id\030\002 \001(\003\022+\n\npredicates\030\003 \001(\0132\027.milvu" "s.proto.plan.Expr\0220\n\nquery_info\030\004 \001(\0132\034." "milvus.proto.plan.QueryInfo\022\027\n\017placehold" - "er_tag\030\005 \001(\t\"H\n\010PlanNode\0224\n\013vector_anns\030" - "\001 \001(\0132\035.milvus.proto.plan.VectorANNSH\000B\006" - "\n\004nodeB3Z1github.com/milvus-io/milvus/in" - "ternal/proto/planpbb\006proto3" + "er_tag\030\005 \001(\t\"b\n\010PlanNode\0224\n\013vector_anns\030" + "\001 \001(\0132\035.milvus.proto.plan.VectorANNSH\000\022\030" + "\n\020output_field_ids\030\002 \003(\003B\006\n\004nodeB3Z1gith" + "ub.com/milvus-io/milvus/internal/proto/p" + "lanpbb\006proto3" ; static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_plan_2eproto_deps[1] = { &::descriptor_table_schema_2eproto, @@ -382,7 +384,7 @@ static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_pla static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_plan_2eproto_once; static bool descriptor_table_plan_2eproto_initialized = false; const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_plan_2eproto = { - &descriptor_table_plan_2eproto_initialized, descriptor_table_protodef_plan_2eproto, "plan.proto", 1587, + &descriptor_table_plan_2eproto_initialized, descriptor_table_protodef_plan_2eproto, "plan.proto", 1613, &descriptor_table_plan_2eproto_once, descriptor_table_plan_2eproto_sccs, descriptor_table_plan_2eproto_deps, 8, 1, schemas, file_default_instances, TableStruct_plan_2eproto::offsets, file_level_metadata_plan_2eproto, 10, file_level_enum_descriptors_plan_2eproto, file_level_service_descriptors_plan_2eproto, @@ -4060,7 +4062,8 @@ PlanNode::PlanNode() } PlanNode::PlanNode(const PlanNode& from) : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(nullptr) { + _internal_metadata_(nullptr), + output_field_ids_(from.output_field_ids_) { _internal_metadata_.MergeFrom(from._internal_metadata_); clear_has_node(); switch (from.node_case()) { @@ -4121,6 +4124,7 @@ void PlanNode::Clear() { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; + output_field_ids_.Clear(); clear_node(); _internal_metadata_.Clear(); } @@ -4140,6 +4144,16 @@ const char* PlanNode::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::i CHK_(ptr); } else goto handle_unusual; continue; + // repeated int64 output_field_ids = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { + ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(mutable_output_field_ids(), ptr, ctx); + CHK_(ptr); + } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) { + add_output_field_ids(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr)); + CHK_(ptr); + } else goto handle_unusual; + continue; default: { handle_unusual: if ((tag & 7) == 4 || tag == 0) { @@ -4181,6 +4195,22 @@ bool PlanNode::MergePartialFromCodedStream( break; } + // repeated int64 output_field_ids = 2; + case 2: { + if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) { + DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPackedPrimitive< + ::PROTOBUF_NAMESPACE_ID::int64, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_INT64>( + input, this->mutable_output_field_ids()))); + } else if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (16 & 0xFF)) { + DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline< + ::PROTOBUF_NAMESPACE_ID::int64, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_INT64>( + 1, 18u, input, this->mutable_output_field_ids()))); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -4214,6 +4244,17 @@ void PlanNode::SerializeWithCachedSizes( 1, _Internal::vector_anns(this), output); } + // repeated int64 output_field_ids = 2; + if (this->output_field_ids_size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteTag(2, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output); + output->WriteVarint32(_output_field_ids_cached_byte_size_.load( + std::memory_order_relaxed)); + } + for (int i = 0, n = this->output_field_ids_size(); i < n; i++) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64NoTag( + this->output_field_ids(i), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -4234,6 +4275,19 @@ void PlanNode::SerializeWithCachedSizes( 1, _Internal::vector_anns(this), target); } + // repeated int64 output_field_ids = 2; + if (this->output_field_ids_size() > 0) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteTagToArray( + 2, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, + target); + target = ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream::WriteVarint32ToArray( + _output_field_ids_cached_byte_size_.load(std::memory_order_relaxed), + target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + WriteInt64NoTagToArray(this->output_field_ids_, target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -4255,6 +4309,21 @@ size_t PlanNode::ByteSizeLong() const { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; + // repeated int64 output_field_ids = 2; + { + size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + Int64Size(this->output_field_ids_); + if (data_size > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size( + static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size)); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size); + _output_field_ids_cached_byte_size_.store(cached_size, + std::memory_order_relaxed); + total_size += data_size; + } + switch (node_case()) { // .milvus.proto.plan.VectorANNS vector_anns = 1; case kVectorAnns: { @@ -4294,6 +4363,7 @@ void PlanNode::MergeFrom(const PlanNode& from) { ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; (void) cached_has_bits; + output_field_ids_.MergeFrom(from.output_field_ids_); switch (from.node_case()) { case kVectorAnns: { mutable_vector_anns()->::milvus::proto::plan::VectorANNS::MergeFrom(from.vector_anns()); @@ -4326,6 +4396,7 @@ bool PlanNode::IsInitialized() const { void PlanNode::InternalSwap(PlanNode* other) { using std::swap; _internal_metadata_.Swap(&other->_internal_metadata_); + output_field_ids_.InternalSwap(&other->output_field_ids_); swap(node_, other->node_); swap(_oneof_case_[0], other->_oneof_case_[0]); } diff --git a/internal/core/src/pb/plan.pb.h b/internal/core/src/pb/plan.pb.h index 5362839629..4e30c1c614 100644 --- a/internal/core/src/pb/plan.pb.h +++ b/internal/core/src/pb/plan.pb.h @@ -1849,8 +1849,20 @@ class PlanNode : // accessors ------------------------------------------------------- enum : int { + kOutputFieldIdsFieldNumber = 2, kVectorAnnsFieldNumber = 1, }; + // repeated int64 output_field_ids = 2; + int output_field_ids_size() const; + void clear_output_field_ids(); + ::PROTOBUF_NAMESPACE_ID::int64 output_field_ids(int index) const; + void set_output_field_ids(int index, ::PROTOBUF_NAMESPACE_ID::int64 value); + void add_output_field_ids(::PROTOBUF_NAMESPACE_ID::int64 value); + const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int64 >& + output_field_ids() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int64 >* + mutable_output_field_ids(); + // .milvus.proto.plan.VectorANNS vector_anns = 1; bool has_vector_anns() const; void clear_vector_anns(); @@ -1870,6 +1882,8 @@ class PlanNode : inline void clear_has_node(); ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int64 > output_field_ids_; + mutable std::atomic _output_field_ids_cached_byte_size_; union NodeUnion { NodeUnion() {} ::milvus::proto::plan::VectorANNS* vector_anns_; @@ -2962,6 +2976,36 @@ inline ::milvus::proto::plan::VectorANNS* PlanNode::mutable_vector_anns() { return node_.vector_anns_; } +// repeated int64 output_field_ids = 2; +inline int PlanNode::output_field_ids_size() const { + return output_field_ids_.size(); +} +inline void PlanNode::clear_output_field_ids() { + output_field_ids_.Clear(); +} +inline ::PROTOBUF_NAMESPACE_ID::int64 PlanNode::output_field_ids(int index) const { + // @@protoc_insertion_point(field_get:milvus.proto.plan.PlanNode.output_field_ids) + return output_field_ids_.Get(index); +} +inline void PlanNode::set_output_field_ids(int index, ::PROTOBUF_NAMESPACE_ID::int64 value) { + output_field_ids_.Set(index, value); + // @@protoc_insertion_point(field_set:milvus.proto.plan.PlanNode.output_field_ids) +} +inline void PlanNode::add_output_field_ids(::PROTOBUF_NAMESPACE_ID::int64 value) { + output_field_ids_.Add(value); + // @@protoc_insertion_point(field_add:milvus.proto.plan.PlanNode.output_field_ids) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int64 >& +PlanNode::output_field_ids() const { + // @@protoc_insertion_point(field_list:milvus.proto.plan.PlanNode.output_field_ids) + return output_field_ids_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int64 >* +PlanNode::mutable_output_field_ids() { + // @@protoc_insertion_point(field_mutable_list:milvus.proto.plan.PlanNode.output_field_ids) + return &output_field_ids_; +} + inline bool PlanNode::has_node() const { return node_case() != NODE_NOT_SET; } diff --git a/internal/core/src/pb/schema.pb.cc b/internal/core/src/pb/schema.pb.cc index faba7bda9d..8c6b4a5b24 100644 --- a/internal/core/src/pb/schema.pb.cc +++ b/internal/core/src/pb/schema.pb.cc @@ -19,8 +19,10 @@ extern PROTOBUF_INTERNAL_EXPORT_common_2eproto ::PROTOBUF_NAMESPACE_ID::internal extern PROTOBUF_INTERNAL_EXPORT_schema_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_BoolArray_schema_2eproto; extern PROTOBUF_INTERNAL_EXPORT_schema_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_BytesArray_schema_2eproto; extern PROTOBUF_INTERNAL_EXPORT_schema_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_DoubleArray_schema_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_schema_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_FieldData_schema_2eproto; extern PROTOBUF_INTERNAL_EXPORT_schema_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_FieldSchema_schema_2eproto; extern PROTOBUF_INTERNAL_EXPORT_schema_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_FloatArray_schema_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_schema_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_IDs_schema_2eproto; extern PROTOBUF_INTERNAL_EXPORT_schema_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_IntArray_schema_2eproto; extern PROTOBUF_INTERNAL_EXPORT_schema_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_LongArray_schema_2eproto; extern PROTOBUF_INTERNAL_EXPORT_schema_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<7> scc_info_ScalarField_schema_2eproto; @@ -94,6 +96,10 @@ class IDsDefaultTypeInternal { const ::milvus::proto::schema::LongArray* int_id_; const ::milvus::proto::schema::StringArray* str_id_; } _IDs_default_instance_; +class SearchResultDataDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance; +} _SearchResultData_default_instance_; } // namespace schema } // namespace proto } // namespace milvus @@ -264,6 +270,22 @@ static void InitDefaultsscc_info_ScalarField_schema_2eproto() { &scc_info_StringArray_schema_2eproto.base, &scc_info_BytesArray_schema_2eproto.base,}}; +static void InitDefaultsscc_info_SearchResultData_schema_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::milvus::proto::schema::_SearchResultData_default_instance_; + new (ptr) ::milvus::proto::schema::SearchResultData(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::milvus::proto::schema::SearchResultData::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_SearchResultData_schema_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsscc_info_SearchResultData_schema_2eproto}, { + &scc_info_FieldData_schema_2eproto.base, + &scc_info_IDs_schema_2eproto.base,}}; + static void InitDefaultsscc_info_StringArray_schema_2eproto() { GOOGLE_PROTOBUF_VERIFY_VERSION; @@ -293,7 +315,7 @@ static void InitDefaultsscc_info_VectorField_schema_2eproto() { {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsscc_info_VectorField_schema_2eproto}, { &scc_info_FloatArray_schema_2eproto.base,}}; -static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_schema_2eproto[13]; +static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_schema_2eproto[14]; static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_schema_2eproto[1]; static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_schema_2eproto = nullptr; @@ -402,6 +424,16 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_schema_2eproto::offsets[] PROT offsetof(::milvus::proto::schema::IDsDefaultTypeInternal, int_id_), offsetof(::milvus::proto::schema::IDsDefaultTypeInternal, str_id_), PROTOBUF_FIELD_OFFSET(::milvus::proto::schema::IDs, id_field_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::milvus::proto::schema::SearchResultData, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::milvus::proto::schema::SearchResultData, num_queries_), + PROTOBUF_FIELD_OFFSET(::milvus::proto::schema::SearchResultData, top_k_), + PROTOBUF_FIELD_OFFSET(::milvus::proto::schema::SearchResultData, fields_data_), + PROTOBUF_FIELD_OFFSET(::milvus::proto::schema::SearchResultData, scores_), + PROTOBUF_FIELD_OFFSET(::milvus::proto::schema::SearchResultData, ids_), }; static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, -1, sizeof(::milvus::proto::schema::FieldSchema)}, @@ -417,6 +449,7 @@ static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOB { 77, -1, sizeof(::milvus::proto::schema::VectorField)}, { 86, -1, sizeof(::milvus::proto::schema::FieldData)}, { 96, -1, sizeof(::milvus::proto::schema::IDs)}, + { 104, -1, sizeof(::milvus::proto::schema::SearchResultData)}, }; static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = { @@ -433,6 +466,7 @@ static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = reinterpret_cast(&::milvus::proto::schema::_VectorField_default_instance_), reinterpret_cast(&::milvus::proto::schema::_FieldData_default_instance_), reinterpret_cast(&::milvus::proto::schema::_IDs_default_instance_), + reinterpret_cast(&::milvus::proto::schema::_SearchResultData_default_instance_), }; const char descriptor_table_protodef_schema_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = @@ -472,18 +506,22 @@ const char descriptor_table_protodef_schema_2eproto[] PROTOBUF_SECTION_VARIABLE( "to.schema.VectorFieldH\000B\007\n\005field\"w\n\003IDs\022" "0\n\006int_id\030\001 \001(\0132\036.milvus.proto.schema.Lo" "ngArrayH\000\0222\n\006str_id\030\002 \001(\0132 .milvus.proto" - ".schema.StringArrayH\000B\n\n\010id_field*\217\001\n\010Da" - "taType\022\010\n\004None\020\000\022\010\n\004Bool\020\001\022\010\n\004Int8\020\002\022\t\n\005" - "Int16\020\003\022\t\n\005Int32\020\004\022\t\n\005Int64\020\005\022\t\n\005Float\020\n" - "\022\n\n\006Double\020\013\022\n\n\006String\020\024\022\020\n\014BinaryVector" - "\020d\022\017\n\013FloatVector\020eB5Z3github.com/milvus" - "-io/milvus/internal/proto/schemapbb\006prot" - "o3" + ".schema.StringArrayH\000B\n\n\010id_field\"\242\001\n\020Se" + "archResultData\022\023\n\013num_queries\030\001 \001(\003\022\r\n\005t" + "op_k\030\002 \001(\003\0223\n\013fields_data\030\003 \003(\0132\036.milvus" + ".proto.schema.FieldData\022\016\n\006scores\030\004 \003(\002\022" + "%\n\003ids\030\005 \001(\0132\030.milvus.proto.schema.IDs*\217" + "\001\n\010DataType\022\010\n\004None\020\000\022\010\n\004Bool\020\001\022\010\n\004Int8\020" + "\002\022\t\n\005Int16\020\003\022\t\n\005Int32\020\004\022\t\n\005Int64\020\005\022\t\n\005Fl" + "oat\020\n\022\n\n\006Double\020\013\022\n\n\006String\020\024\022\020\n\014BinaryV" + "ector\020d\022\017\n\013FloatVector\020eB5Z3github.com/m" + "ilvus-io/milvus/internal/proto/schemapbb" + "\006proto3" ; static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_schema_2eproto_deps[1] = { &::descriptor_table_common_2eproto, }; -static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_schema_2eproto_sccs[13] = { +static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_schema_2eproto_sccs[14] = { &scc_info_BoolArray_schema_2eproto.base, &scc_info_BytesArray_schema_2eproto.base, &scc_info_CollectionSchema_schema_2eproto.base, @@ -495,16 +533,17 @@ static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_sch &scc_info_IntArray_schema_2eproto.base, &scc_info_LongArray_schema_2eproto.base, &scc_info_ScalarField_schema_2eproto.base, + &scc_info_SearchResultData_schema_2eproto.base, &scc_info_StringArray_schema_2eproto.base, &scc_info_VectorField_schema_2eproto.base, }; static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_schema_2eproto_once; static bool descriptor_table_schema_2eproto_initialized = false; const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_schema_2eproto = { - &descriptor_table_schema_2eproto_initialized, descriptor_table_protodef_schema_2eproto, "schema.proto", 1682, - &descriptor_table_schema_2eproto_once, descriptor_table_schema_2eproto_sccs, descriptor_table_schema_2eproto_deps, 13, 1, + &descriptor_table_schema_2eproto_initialized, descriptor_table_protodef_schema_2eproto, "schema.proto", 1847, + &descriptor_table_schema_2eproto_once, descriptor_table_schema_2eproto_sccs, descriptor_table_schema_2eproto_deps, 14, 1, schemas, file_default_instances, TableStruct_schema_2eproto::offsets, - file_level_metadata_schema_2eproto, 13, file_level_enum_descriptors_schema_2eproto, file_level_service_descriptors_schema_2eproto, + file_level_metadata_schema_2eproto, 14, file_level_enum_descriptors_schema_2eproto, file_level_service_descriptors_schema_2eproto, }; // Force running AddDescriptors() at dynamic initialization time. @@ -5486,6 +5525,484 @@ void IDs::InternalSwap(IDs* other) { } +// =================================================================== + +void SearchResultData::InitAsDefaultInstance() { + ::milvus::proto::schema::_SearchResultData_default_instance_._instance.get_mutable()->ids_ = const_cast< ::milvus::proto::schema::IDs*>( + ::milvus::proto::schema::IDs::internal_default_instance()); +} +class SearchResultData::_Internal { + public: + static const ::milvus::proto::schema::IDs& ids(const SearchResultData* msg); +}; + +const ::milvus::proto::schema::IDs& +SearchResultData::_Internal::ids(const SearchResultData* msg) { + return *msg->ids_; +} +SearchResultData::SearchResultData() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:milvus.proto.schema.SearchResultData) +} +SearchResultData::SearchResultData(const SearchResultData& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr), + fields_data_(from.fields_data_), + scores_(from.scores_) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + if (from.has_ids()) { + ids_ = new ::milvus::proto::schema::IDs(*from.ids_); + } else { + ids_ = nullptr; + } + ::memcpy(&num_queries_, &from.num_queries_, + static_cast(reinterpret_cast(&top_k_) - + reinterpret_cast(&num_queries_)) + sizeof(top_k_)); + // @@protoc_insertion_point(copy_constructor:milvus.proto.schema.SearchResultData) +} + +void SearchResultData::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SearchResultData_schema_2eproto.base); + ::memset(&ids_, 0, static_cast( + reinterpret_cast(&top_k_) - + reinterpret_cast(&ids_)) + sizeof(top_k_)); +} + +SearchResultData::~SearchResultData() { + // @@protoc_insertion_point(destructor:milvus.proto.schema.SearchResultData) + SharedDtor(); +} + +void SearchResultData::SharedDtor() { + if (this != internal_default_instance()) delete ids_; +} + +void SearchResultData::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const SearchResultData& SearchResultData::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SearchResultData_schema_2eproto.base); + return *internal_default_instance(); +} + + +void SearchResultData::Clear() { +// @@protoc_insertion_point(message_clear_start:milvus.proto.schema.SearchResultData) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + fields_data_.Clear(); + scores_.Clear(); + if (GetArenaNoVirtual() == nullptr && ids_ != nullptr) { + delete ids_; + } + ids_ = nullptr; + ::memset(&num_queries_, 0, static_cast( + reinterpret_cast(&top_k_) - + reinterpret_cast(&num_queries_)) + sizeof(top_k_)); + _internal_metadata_.Clear(); +} + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +const char* SearchResultData::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // int64 num_queries = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) { + num_queries_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + // int64 top_k = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) { + top_k_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + // repeated .milvus.proto.schema.FieldData fields_data = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(add_fields_data(), ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 26); + } else goto handle_unusual; + continue; + // repeated float scores = 4; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) { + ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(mutable_scores(), ptr, ctx); + CHK_(ptr); + } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 37) { + add_scores(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad(ptr)); + ptr += sizeof(float); + } else goto handle_unusual; + continue; + // .milvus.proto.schema.IDs ids = 5; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) { + ptr = ctx->ParseMessage(mutable_ids(), ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} +#else // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +bool SearchResultData::MergePartialFromCodedStream( + ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) { +#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + // @@protoc_insertion_point(parse_start:milvus.proto.schema.SearchResultData) + for (;;) { + ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); + tag = p.first; + if (!p.second) goto handle_unusual; + switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) { + // int64 num_queries = 1; + case 1: { + if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (8 & 0xFF)) { + + DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive< + ::PROTOBUF_NAMESPACE_ID::int64, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_INT64>( + input, &num_queries_))); + } else { + goto handle_unusual; + } + break; + } + + // int64 top_k = 2; + case 2: { + if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (16 & 0xFF)) { + + DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive< + ::PROTOBUF_NAMESPACE_ID::int64, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_INT64>( + input, &top_k_))); + } else { + goto handle_unusual; + } + break; + } + + // repeated .milvus.proto.schema.FieldData fields_data = 3; + case 3: { + if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (26 & 0xFF)) { + DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage( + input, add_fields_data())); + } else { + goto handle_unusual; + } + break; + } + + // repeated float scores = 4; + case 4: { + if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (34 & 0xFF)) { + DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPackedPrimitive< + float, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_FLOAT>( + input, this->mutable_scores()))); + } else if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (37 & 0xFF)) { + DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline< + float, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_FLOAT>( + 1, 34u, input, this->mutable_scores()))); + } else { + goto handle_unusual; + } + break; + } + + // .milvus.proto.schema.IDs ids = 5; + case 5: { + if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (42 & 0xFF)) { + DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage( + input, mutable_ids())); + } else { + goto handle_unusual; + } + break; + } + + default: { + handle_unusual: + if (tag == 0) { + goto success; + } + DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField( + input, tag, _internal_metadata_.mutable_unknown_fields())); + break; + } + } + } +success: + // @@protoc_insertion_point(parse_success:milvus.proto.schema.SearchResultData) + return true; +failure: + // @@protoc_insertion_point(parse_failure:milvus.proto.schema.SearchResultData) + return false; +#undef DO_ +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + +void SearchResultData::SerializeWithCachedSizes( + ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const { + // @@protoc_insertion_point(serialize_start:milvus.proto.schema.SearchResultData) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // int64 num_queries = 1; + if (this->num_queries() != 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64(1, this->num_queries(), output); + } + + // int64 top_k = 2; + if (this->top_k() != 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64(2, this->top_k(), output); + } + + // repeated .milvus.proto.schema.FieldData fields_data = 3; + for (unsigned int i = 0, + n = static_cast(this->fields_data_size()); i < n; i++) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray( + 3, + this->fields_data(static_cast(i)), + output); + } + + // repeated float scores = 4; + if (this->scores_size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteTag(4, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output); + output->WriteVarint32(_scores_cached_byte_size_.load( + std::memory_order_relaxed)); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatArray( + this->scores().data(), this->scores_size(), output); + } + + // .milvus.proto.schema.IDs ids = 5; + if (this->has_ids()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray( + 5, _Internal::ids(this), output); + } + + if (_internal_metadata_.have_unknown_fields()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields( + _internal_metadata_.unknown_fields(), output); + } + // @@protoc_insertion_point(serialize_end:milvus.proto.schema.SearchResultData) +} + +::PROTOBUF_NAMESPACE_ID::uint8* SearchResultData::InternalSerializeWithCachedSizesToArray( + ::PROTOBUF_NAMESPACE_ID::uint8* target) const { + // @@protoc_insertion_point(serialize_to_array_start:milvus.proto.schema.SearchResultData) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // int64 num_queries = 1; + if (this->num_queries() != 0) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(1, this->num_queries(), target); + } + + // int64 top_k = 2; + if (this->top_k() != 0) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->top_k(), target); + } + + // repeated .milvus.proto.schema.FieldData fields_data = 3; + for (unsigned int i = 0, + n = static_cast(this->fields_data_size()); i < n; i++) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessageToArray( + 3, this->fields_data(static_cast(i)), target); + } + + // repeated float scores = 4; + if (this->scores_size() > 0) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteTagToArray( + 4, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, + target); + target = ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream::WriteVarint32ToArray( + _scores_cached_byte_size_.load(std::memory_order_relaxed), + target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + WriteFloatNoTagToArray(this->scores_, target); + } + + // .milvus.proto.schema.IDs ids = 5; + if (this->has_ids()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessageToArray( + 5, _Internal::ids(this), target); + } + + if (_internal_metadata_.have_unknown_fields()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target); + } + // @@protoc_insertion_point(serialize_to_array_end:milvus.proto.schema.SearchResultData) + return target; +} + +size_t SearchResultData::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:milvus.proto.schema.SearchResultData) + size_t total_size = 0; + + if (_internal_metadata_.have_unknown_fields()) { + total_size += + ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize( + _internal_metadata_.unknown_fields()); + } + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated .milvus.proto.schema.FieldData fields_data = 3; + { + unsigned int count = static_cast(this->fields_data_size()); + total_size += 1UL * count; + for (unsigned int i = 0; i < count; i++) { + total_size += + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + this->fields_data(static_cast(i))); + } + } + + // repeated float scores = 4; + { + unsigned int count = static_cast(this->scores_size()); + size_t data_size = 4UL * count; + if (data_size > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size( + static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size)); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size); + _scores_cached_byte_size_.store(cached_size, + std::memory_order_relaxed); + total_size += data_size; + } + + // .milvus.proto.schema.IDs ids = 5; + if (this->has_ids()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *ids_); + } + + // int64 num_queries = 1; + if (this->num_queries() != 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size( + this->num_queries()); + } + + // int64 top_k = 2; + if (this->top_k() != 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size( + this->top_k()); + } + + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void SearchResultData::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:milvus.proto.schema.SearchResultData) + GOOGLE_DCHECK_NE(&from, this); + const SearchResultData* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:milvus.proto.schema.SearchResultData) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:milvus.proto.schema.SearchResultData) + MergeFrom(*source); + } +} + +void SearchResultData::MergeFrom(const SearchResultData& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:milvus.proto.schema.SearchResultData) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + fields_data_.MergeFrom(from.fields_data_); + scores_.MergeFrom(from.scores_); + if (from.has_ids()) { + mutable_ids()->::milvus::proto::schema::IDs::MergeFrom(from.ids()); + } + if (from.num_queries() != 0) { + set_num_queries(from.num_queries()); + } + if (from.top_k() != 0) { + set_top_k(from.top_k()); + } +} + +void SearchResultData::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:milvus.proto.schema.SearchResultData) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void SearchResultData::CopyFrom(const SearchResultData& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:milvus.proto.schema.SearchResultData) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool SearchResultData::IsInitialized() const { + return true; +} + +void SearchResultData::InternalSwap(SearchResultData* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + CastToBase(&fields_data_)->InternalSwap(CastToBase(&other->fields_data_)); + scores_.InternalSwap(&other->scores_); + swap(ids_, other->ids_); + swap(num_queries_, other->num_queries_); + swap(top_k_, other->top_k_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata SearchResultData::GetMetadata() const { + return GetMetadataStatic(); +} + + // @@protoc_insertion_point(namespace_scope) } // namespace schema } // namespace proto @@ -5530,6 +6047,9 @@ template<> PROTOBUF_NOINLINE ::milvus::proto::schema::FieldData* Arena::CreateMa template<> PROTOBUF_NOINLINE ::milvus::proto::schema::IDs* Arena::CreateMaybeMessage< ::milvus::proto::schema::IDs >(Arena* arena) { return Arena::CreateInternal< ::milvus::proto::schema::IDs >(arena); } +template<> PROTOBUF_NOINLINE ::milvus::proto::schema::SearchResultData* Arena::CreateMaybeMessage< ::milvus::proto::schema::SearchResultData >(Arena* arena) { + return Arena::CreateInternal< ::milvus::proto::schema::SearchResultData >(arena); +} PROTOBUF_NAMESPACE_CLOSE // @@protoc_insertion_point(global_scope) diff --git a/internal/core/src/pb/schema.pb.h b/internal/core/src/pb/schema.pb.h index f13a51a671..380461d2e0 100644 --- a/internal/core/src/pb/schema.pb.h +++ b/internal/core/src/pb/schema.pb.h @@ -49,7 +49,7 @@ struct TableStruct_schema_2eproto { PROTOBUF_SECTION_VARIABLE(protodesc_cold); static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[] PROTOBUF_SECTION_VARIABLE(protodesc_cold); - static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[13] + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[14] PROTOBUF_SECTION_VARIABLE(protodesc_cold); static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]; static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]; @@ -92,6 +92,9 @@ extern LongArrayDefaultTypeInternal _LongArray_default_instance_; class ScalarField; class ScalarFieldDefaultTypeInternal; extern ScalarFieldDefaultTypeInternal _ScalarField_default_instance_; +class SearchResultData; +class SearchResultDataDefaultTypeInternal; +extern SearchResultDataDefaultTypeInternal _SearchResultData_default_instance_; class StringArray; class StringArrayDefaultTypeInternal; extern StringArrayDefaultTypeInternal _StringArray_default_instance_; @@ -113,6 +116,7 @@ template<> ::milvus::proto::schema::IDs* Arena::CreateMaybeMessage<::milvus::pro template<> ::milvus::proto::schema::IntArray* Arena::CreateMaybeMessage<::milvus::proto::schema::IntArray>(Arena*); template<> ::milvus::proto::schema::LongArray* Arena::CreateMaybeMessage<::milvus::proto::schema::LongArray>(Arena*); template<> ::milvus::proto::schema::ScalarField* Arena::CreateMaybeMessage<::milvus::proto::schema::ScalarField>(Arena*); +template<> ::milvus::proto::schema::SearchResultData* Arena::CreateMaybeMessage<::milvus::proto::schema::SearchResultData>(Arena*); template<> ::milvus::proto::schema::StringArray* Arena::CreateMaybeMessage<::milvus::proto::schema::StringArray>(Arena*); template<> ::milvus::proto::schema::VectorField* Arena::CreateMaybeMessage<::milvus::proto::schema::VectorField>(Arena*); PROTOBUF_NAMESPACE_CLOSE @@ -2245,6 +2249,181 @@ class IDs : friend struct ::TableStruct_schema_2eproto; }; +// ------------------------------------------------------------------- + +class SearchResultData : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:milvus.proto.schema.SearchResultData) */ { + public: + SearchResultData(); + virtual ~SearchResultData(); + + SearchResultData(const SearchResultData& from); + SearchResultData(SearchResultData&& from) noexcept + : SearchResultData() { + *this = ::std::move(from); + } + + inline SearchResultData& operator=(const SearchResultData& from) { + CopyFrom(from); + return *this; + } + inline SearchResultData& operator=(SearchResultData&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const SearchResultData& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const SearchResultData* internal_default_instance() { + return reinterpret_cast( + &_SearchResultData_default_instance_); + } + static constexpr int kIndexInFileMessages = + 13; + + friend void swap(SearchResultData& a, SearchResultData& b) { + a.Swap(&b); + } + inline void Swap(SearchResultData* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline SearchResultData* New() const final { + return CreateMaybeMessage(nullptr); + } + + SearchResultData* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const SearchResultData& from); + void MergeFrom(const SearchResultData& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + #else + bool MergePartialFromCodedStream( + ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final; + #endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + void SerializeWithCachedSizes( + ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final; + ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray( + ::PROTOBUF_NAMESPACE_ID::uint8* target) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(SearchResultData* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "milvus.proto.schema.SearchResultData"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_schema_2eproto); + return ::descriptor_table_schema_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kFieldsDataFieldNumber = 3, + kScoresFieldNumber = 4, + kIdsFieldNumber = 5, + kNumQueriesFieldNumber = 1, + kTopKFieldNumber = 2, + }; + // repeated .milvus.proto.schema.FieldData fields_data = 3; + int fields_data_size() const; + void clear_fields_data(); + ::milvus::proto::schema::FieldData* mutable_fields_data(int index); + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::schema::FieldData >* + mutable_fields_data(); + const ::milvus::proto::schema::FieldData& fields_data(int index) const; + ::milvus::proto::schema::FieldData* add_fields_data(); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::schema::FieldData >& + fields_data() const; + + // repeated float scores = 4; + int scores_size() const; + void clear_scores(); + float scores(int index) const; + void set_scores(int index, float value); + void add_scores(float value); + const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >& + scores() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >* + mutable_scores(); + + // .milvus.proto.schema.IDs ids = 5; + bool has_ids() const; + void clear_ids(); + const ::milvus::proto::schema::IDs& ids() const; + ::milvus::proto::schema::IDs* release_ids(); + ::milvus::proto::schema::IDs* mutable_ids(); + void set_allocated_ids(::milvus::proto::schema::IDs* ids); + + // int64 num_queries = 1; + void clear_num_queries(); + ::PROTOBUF_NAMESPACE_ID::int64 num_queries() const; + void set_num_queries(::PROTOBUF_NAMESPACE_ID::int64 value); + + // int64 top_k = 2; + void clear_top_k(); + ::PROTOBUF_NAMESPACE_ID::int64 top_k() const; + void set_top_k(::PROTOBUF_NAMESPACE_ID::int64 value); + + // @@protoc_insertion_point(class_scope:milvus.proto.schema.SearchResultData) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::schema::FieldData > fields_data_; + ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > scores_; + mutable std::atomic _scores_cached_byte_size_; + ::milvus::proto::schema::IDs* ids_; + ::PROTOBUF_NAMESPACE_ID::int64 num_queries_; + ::PROTOBUF_NAMESPACE_ID::int64 top_k_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_schema_2eproto; +}; // =================================================================== @@ -3639,6 +3818,149 @@ inline void IDs::clear_has_id_field() { inline IDs::IdFieldCase IDs::id_field_case() const { return IDs::IdFieldCase(_oneof_case_[0]); } +// ------------------------------------------------------------------- + +// SearchResultData + +// int64 num_queries = 1; +inline void SearchResultData::clear_num_queries() { + num_queries_ = PROTOBUF_LONGLONG(0); +} +inline ::PROTOBUF_NAMESPACE_ID::int64 SearchResultData::num_queries() const { + // @@protoc_insertion_point(field_get:milvus.proto.schema.SearchResultData.num_queries) + return num_queries_; +} +inline void SearchResultData::set_num_queries(::PROTOBUF_NAMESPACE_ID::int64 value) { + + num_queries_ = value; + // @@protoc_insertion_point(field_set:milvus.proto.schema.SearchResultData.num_queries) +} + +// int64 top_k = 2; +inline void SearchResultData::clear_top_k() { + top_k_ = PROTOBUF_LONGLONG(0); +} +inline ::PROTOBUF_NAMESPACE_ID::int64 SearchResultData::top_k() const { + // @@protoc_insertion_point(field_get:milvus.proto.schema.SearchResultData.top_k) + return top_k_; +} +inline void SearchResultData::set_top_k(::PROTOBUF_NAMESPACE_ID::int64 value) { + + top_k_ = value; + // @@protoc_insertion_point(field_set:milvus.proto.schema.SearchResultData.top_k) +} + +// repeated .milvus.proto.schema.FieldData fields_data = 3; +inline int SearchResultData::fields_data_size() const { + return fields_data_.size(); +} +inline void SearchResultData::clear_fields_data() { + fields_data_.Clear(); +} +inline ::milvus::proto::schema::FieldData* SearchResultData::mutable_fields_data(int index) { + // @@protoc_insertion_point(field_mutable:milvus.proto.schema.SearchResultData.fields_data) + return fields_data_.Mutable(index); +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::schema::FieldData >* +SearchResultData::mutable_fields_data() { + // @@protoc_insertion_point(field_mutable_list:milvus.proto.schema.SearchResultData.fields_data) + return &fields_data_; +} +inline const ::milvus::proto::schema::FieldData& SearchResultData::fields_data(int index) const { + // @@protoc_insertion_point(field_get:milvus.proto.schema.SearchResultData.fields_data) + return fields_data_.Get(index); +} +inline ::milvus::proto::schema::FieldData* SearchResultData::add_fields_data() { + // @@protoc_insertion_point(field_add:milvus.proto.schema.SearchResultData.fields_data) + return fields_data_.Add(); +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::schema::FieldData >& +SearchResultData::fields_data() const { + // @@protoc_insertion_point(field_list:milvus.proto.schema.SearchResultData.fields_data) + return fields_data_; +} + +// repeated float scores = 4; +inline int SearchResultData::scores_size() const { + return scores_.size(); +} +inline void SearchResultData::clear_scores() { + scores_.Clear(); +} +inline float SearchResultData::scores(int index) const { + // @@protoc_insertion_point(field_get:milvus.proto.schema.SearchResultData.scores) + return scores_.Get(index); +} +inline void SearchResultData::set_scores(int index, float value) { + scores_.Set(index, value); + // @@protoc_insertion_point(field_set:milvus.proto.schema.SearchResultData.scores) +} +inline void SearchResultData::add_scores(float value) { + scores_.Add(value); + // @@protoc_insertion_point(field_add:milvus.proto.schema.SearchResultData.scores) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >& +SearchResultData::scores() const { + // @@protoc_insertion_point(field_list:milvus.proto.schema.SearchResultData.scores) + return scores_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >* +SearchResultData::mutable_scores() { + // @@protoc_insertion_point(field_mutable_list:milvus.proto.schema.SearchResultData.scores) + return &scores_; +} + +// .milvus.proto.schema.IDs ids = 5; +inline bool SearchResultData::has_ids() const { + return this != internal_default_instance() && ids_ != nullptr; +} +inline void SearchResultData::clear_ids() { + if (GetArenaNoVirtual() == nullptr && ids_ != nullptr) { + delete ids_; + } + ids_ = nullptr; +} +inline const ::milvus::proto::schema::IDs& SearchResultData::ids() const { + const ::milvus::proto::schema::IDs* p = ids_; + // @@protoc_insertion_point(field_get:milvus.proto.schema.SearchResultData.ids) + return p != nullptr ? *p : *reinterpret_cast( + &::milvus::proto::schema::_IDs_default_instance_); +} +inline ::milvus::proto::schema::IDs* SearchResultData::release_ids() { + // @@protoc_insertion_point(field_release:milvus.proto.schema.SearchResultData.ids) + + ::milvus::proto::schema::IDs* temp = ids_; + ids_ = nullptr; + return temp; +} +inline ::milvus::proto::schema::IDs* SearchResultData::mutable_ids() { + + if (ids_ == nullptr) { + auto* p = CreateMaybeMessage<::milvus::proto::schema::IDs>(GetArenaNoVirtual()); + ids_ = p; + } + // @@protoc_insertion_point(field_mutable:milvus.proto.schema.SearchResultData.ids) + return ids_; +} +inline void SearchResultData::set_allocated_ids(::milvus::proto::schema::IDs* ids) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual(); + if (message_arena == nullptr) { + delete ids_; + } + if (ids) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + ids = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, ids, submessage_arena); + } + + } else { + + } + ids_ = ids; + // @@protoc_insertion_point(field_set_allocated:milvus.proto.schema.SearchResultData.ids) +} + #ifdef __GNUC__ #pragma GCC diagnostic pop #endif // __GNUC__ @@ -3666,6 +3988,8 @@ inline IDs::IdFieldCase IDs::id_field_case() const { // ------------------------------------------------------------------- +// ------------------------------------------------------------------- + // @@protoc_insertion_point(namespace_scope) diff --git a/internal/core/src/query/PlanProto.cpp b/internal/core/src/query/PlanProto.cpp index 6919efd687..9c22fb4765 100644 --- a/internal/core/src/query/PlanProto.cpp +++ b/internal/core/src/query/PlanProto.cpp @@ -126,6 +126,12 @@ ProtoParser::CreatePlan(const proto::plan::PlanNode& plan_node_proto) { plan->plan_node_ = std::move(plan_node); plan->extra_info_opt_ = std::move(plan_info); + for (auto field_id_raw : plan_node_proto.output_field_ids()) { + auto field_id = FieldId(field_id_raw); + auto offset = schema.get_offset(field_id); + plan->target_entries_.push_back(offset); + } + return plan; } ExprPtr diff --git a/internal/proto/internal.proto b/internal/proto/internal.proto index 3b912a2002..af0ed29590 100644 --- a/internal/proto/internal.proto +++ b/internal/proto/internal.proto @@ -132,7 +132,8 @@ message SearchRequest { bytes placeholder_group = 7; common.DslType dsl_type = 8; bytes serialized_expr_plan = 9; - uint64 travel_timestamp = 10; + repeated int64 output_fields_id = 10; + uint64 travel_timestamp = 11; } message SearchResults { @@ -140,7 +141,14 @@ message SearchResults { common.Status status = 2; string result_channelID = 3; string metric_type = 4; + repeated bytes hits = 5; + + // schema.SearchResultsData inside + bytes sliced_blob = 9; + int64 sliced_num_count = 10; + int64 sliced_offset = 11; + repeated int64 sealed_segmentIDs_searched = 6; repeated string channelIDs_searched = 7; repeated int64 global_sealed_segmentIDs = 8; diff --git a/internal/proto/internalpb/internal.pb.go b/internal/proto/internalpb/internal.pb.go index 1f7b679079..4a403e7bd0 100644 --- a/internal/proto/internalpb/internal.pb.go +++ b/internal/proto/internalpb/internal.pb.go @@ -1046,7 +1046,8 @@ type SearchRequest struct { PlaceholderGroup []byte `protobuf:"bytes,7,opt,name=placeholder_group,json=placeholderGroup,proto3" json:"placeholder_group,omitempty"` DslType commonpb.DslType `protobuf:"varint,8,opt,name=dsl_type,json=dslType,proto3,enum=milvus.proto.common.DslType" json:"dsl_type,omitempty"` SerializedExprPlan []byte `protobuf:"bytes,9,opt,name=serialized_expr_plan,json=serializedExprPlan,proto3" json:"serialized_expr_plan,omitempty"` - TravelTimestamp uint64 `protobuf:"varint,10,opt,name=travel_timestamp,json=travelTimestamp,proto3" json:"travel_timestamp,omitempty"` + OutputFieldsId []int64 `protobuf:"varint,10,rep,packed,name=output_fields_id,json=outputFieldsId,proto3" json:"output_fields_id,omitempty"` + TravelTimestamp uint64 `protobuf:"varint,11,opt,name=travel_timestamp,json=travelTimestamp,proto3" json:"travel_timestamp,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1140,6 +1141,13 @@ func (m *SearchRequest) GetSerializedExprPlan() []byte { return nil } +func (m *SearchRequest) GetOutputFieldsId() []int64 { + if m != nil { + return m.OutputFieldsId + } + return nil +} + func (m *SearchRequest) GetTravelTimestamp() uint64 { if m != nil { return m.TravelTimestamp @@ -1148,17 +1156,21 @@ func (m *SearchRequest) GetTravelTimestamp() uint64 { } type SearchResults struct { - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - Status *commonpb.Status `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` - ResultChannelID string `protobuf:"bytes,3,opt,name=result_channelID,json=resultChannelID,proto3" json:"result_channelID,omitempty"` - MetricType string `protobuf:"bytes,4,opt,name=metric_type,json=metricType,proto3" json:"metric_type,omitempty"` - Hits [][]byte `protobuf:"bytes,5,rep,name=hits,proto3" json:"hits,omitempty"` - SealedSegmentIDsSearched []int64 `protobuf:"varint,6,rep,packed,name=sealed_segmentIDs_searched,json=sealedSegmentIDsSearched,proto3" json:"sealed_segmentIDs_searched,omitempty"` - ChannelIDsSearched []string `protobuf:"bytes,7,rep,name=channelIDs_searched,json=channelIDsSearched,proto3" json:"channelIDs_searched,omitempty"` - GlobalSealedSegmentIDs []int64 `protobuf:"varint,8,rep,packed,name=global_sealed_segmentIDs,json=globalSealedSegmentIDs,proto3" json:"global_sealed_segmentIDs,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + Status *commonpb.Status `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` + ResultChannelID string `protobuf:"bytes,3,opt,name=result_channelID,json=resultChannelID,proto3" json:"result_channelID,omitempty"` + MetricType string `protobuf:"bytes,4,opt,name=metric_type,json=metricType,proto3" json:"metric_type,omitempty"` + Hits [][]byte `protobuf:"bytes,5,rep,name=hits,proto3" json:"hits,omitempty"` + // schema.SearchResultsData inside + SlicedBlob []byte `protobuf:"bytes,9,opt,name=sliced_blob,json=slicedBlob,proto3" json:"sliced_blob,omitempty"` + SlicedNumCount int64 `protobuf:"varint,10,opt,name=sliced_num_count,json=slicedNumCount,proto3" json:"sliced_num_count,omitempty"` + SlicedOffset int64 `protobuf:"varint,11,opt,name=sliced_offset,json=slicedOffset,proto3" json:"sliced_offset,omitempty"` + SealedSegmentIDsSearched []int64 `protobuf:"varint,6,rep,packed,name=sealed_segmentIDs_searched,json=sealedSegmentIDsSearched,proto3" json:"sealed_segmentIDs_searched,omitempty"` + ChannelIDsSearched []string `protobuf:"bytes,7,rep,name=channelIDs_searched,json=channelIDsSearched,proto3" json:"channelIDs_searched,omitempty"` + GlobalSealedSegmentIDs []int64 `protobuf:"varint,8,rep,packed,name=global_sealed_segmentIDs,json=globalSealedSegmentIDs,proto3" json:"global_sealed_segmentIDs,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *SearchResults) Reset() { *m = SearchResults{} } @@ -1221,6 +1233,27 @@ func (m *SearchResults) GetHits() [][]byte { return nil } +func (m *SearchResults) GetSlicedBlob() []byte { + if m != nil { + return m.SlicedBlob + } + return nil +} + +func (m *SearchResults) GetSlicedNumCount() int64 { + if m != nil { + return m.SlicedNumCount + } + return 0 +} + +func (m *SearchResults) GetSlicedOffset() int64 { + if m != nil { + return m.SlicedOffset + } + return 0 +} + func (m *SearchResults) GetSealedSegmentIDsSearched() []int64 { if m != nil { return m.SealedSegmentIDsSearched @@ -2195,121 +2228,126 @@ func init() { func init() { proto.RegisterFile("internal.proto", fileDescriptor_41f4a519b878ee3b) } var fileDescriptor_41f4a519b878ee3b = []byte{ - // 1856 bytes of a gzipped FileDescriptorProto + // 1927 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xcd, 0x73, 0x23, 0x47, - 0x15, 0x67, 0x24, 0xd9, 0x92, 0x9e, 0x64, 0x5b, 0xdb, 0xeb, 0xdd, 0x8c, 0xbd, 0x9b, 0x8d, 0x32, - 0xe1, 0xc3, 0x64, 0x8b, 0xf5, 0xe2, 0x00, 0x49, 0x51, 0x14, 0x9b, 0xd8, 0x4a, 0x16, 0xd5, 0xc6, - 0x5b, 0x66, 0xb4, 0x49, 0x15, 0x5c, 0xa6, 0x5a, 0x33, 0x6d, 0x69, 0x92, 0xf9, 0x62, 0xba, 0xe5, - 0xb5, 0x72, 0xe2, 0xc0, 0x8d, 0x82, 0x03, 0x55, 0x1c, 0xf9, 0x17, 0xb8, 0x72, 0xe2, 0xa3, 0x72, - 0xa0, 0xa8, 0xe2, 0x2f, 0xe0, 0x5f, 0xe1, 0x02, 0xd5, 0xaf, 0x7b, 0x3e, 0x24, 0x8f, 0x8d, 0xa3, - 0x2d, 0x0a, 0xb6, 0xe0, 0x36, 0xfd, 0xde, 0xeb, 0xd7, 0xfd, 0x7e, 0xef, 0x53, 0x2d, 0xd8, 0xf4, - 0x23, 0xc1, 0xd2, 0x88, 0x06, 0x0f, 0x92, 0x34, 0x16, 0x31, 0xb9, 0x15, 0xfa, 0xc1, 0xd9, 0x8c, - 0xab, 0xd5, 0x83, 0x8c, 0xb9, 0xdb, 0x75, 0xe3, 0x30, 0x8c, 0x23, 0x45, 0xde, 0xed, 0x72, 0x77, - 0xca, 0x42, 0xaa, 0x56, 0xd6, 0x1f, 0x0c, 0xd8, 0x38, 0x8a, 0xc3, 0x24, 0x8e, 0x58, 0x24, 0x86, - 0xd1, 0x69, 0x4c, 0x6e, 0xc3, 0x7a, 0x14, 0x7b, 0x6c, 0x38, 0x30, 0x8d, 0xbe, 0xb1, 0x57, 0xb7, - 0xf5, 0x8a, 0x10, 0x68, 0xa4, 0x71, 0xc0, 0xcc, 0x5a, 0xdf, 0xd8, 0x6b, 0xdb, 0xf8, 0x4d, 0x1e, - 0x01, 0x70, 0x41, 0x05, 0x73, 0xdc, 0xd8, 0x63, 0x66, 0xbd, 0x6f, 0xec, 0x6d, 0x1e, 0xf4, 0x1f, - 0x54, 0xde, 0xe2, 0xc1, 0x48, 0x0a, 0x1e, 0xc5, 0x1e, 0xb3, 0xdb, 0x3c, 0xfb, 0x24, 0xef, 0x02, - 0xb0, 0x73, 0x91, 0x52, 0xc7, 0x8f, 0x4e, 0x63, 0xb3, 0xd1, 0xaf, 0xef, 0x75, 0x0e, 0x5e, 0x5f, - 0x54, 0xa0, 0x2f, 0xff, 0x84, 0xcd, 0x3f, 0xa6, 0xc1, 0x8c, 0x9d, 0x50, 0x3f, 0xb5, 0xdb, 0xb8, - 0x49, 0x5e, 0xd7, 0xfa, 0x9b, 0x01, 0x5b, 0xb9, 0x01, 0x78, 0x06, 0x27, 0xdf, 0x85, 0x35, 0x3c, - 0x02, 0x2d, 0xe8, 0x1c, 0x7c, 0xf9, 0x92, 0x1b, 0x2d, 0xd8, 0x6d, 0xab, 0x2d, 0xe4, 0x23, 0xb8, - 0xc9, 0x67, 0x63, 0x37, 0x63, 0x39, 0x48, 0xe5, 0x66, 0x0d, 0xaf, 0x76, 0x3d, 0x4d, 0xa4, 0xac, - 0x40, 0x5f, 0xe9, 0x2d, 0x58, 0x97, 0x9a, 0x66, 0x1c, 0x51, 0xea, 0x1c, 0xdc, 0xa9, 0x34, 0x72, - 0x84, 0x22, 0xb6, 0x16, 0xb5, 0xee, 0xc0, 0xce, 0x63, 0x26, 0x96, 0xac, 0xb3, 0xd9, 0x4f, 0x66, - 0x8c, 0x0b, 0xcd, 0x7c, 0xe6, 0x87, 0xec, 0x99, 0xef, 0x7e, 0x7a, 0x34, 0xa5, 0x51, 0xc4, 0x82, - 0x8c, 0xf9, 0x2a, 0xdc, 0x79, 0xcc, 0x70, 0x83, 0xcf, 0x85, 0xef, 0xf2, 0x25, 0xf6, 0x2d, 0xb8, - 0xf9, 0x98, 0x89, 0x81, 0xb7, 0x44, 0xfe, 0x18, 0x5a, 0x4f, 0xa5, 0xb3, 0x65, 0x18, 0x7c, 0x07, - 0x9a, 0xd4, 0xf3, 0x52, 0xc6, 0xb9, 0x46, 0xf1, 0x6e, 0xe5, 0x8d, 0xdf, 0x53, 0x32, 0x76, 0x26, - 0x5c, 0x15, 0x26, 0xd6, 0x27, 0x00, 0xc3, 0xc8, 0x17, 0x27, 0x34, 0xa5, 0x21, 0xbf, 0x34, 0xc0, - 0x06, 0xd0, 0xe5, 0x82, 0xa6, 0xc2, 0x49, 0x50, 0x4e, 0x43, 0x7e, 0x8d, 0x68, 0xe8, 0xe0, 0x36, - 0xa5, 0xdd, 0xfa, 0x11, 0xc0, 0x48, 0xa4, 0x7e, 0x34, 0xf9, 0xd0, 0xe7, 0x42, 0x9e, 0x75, 0x26, - 0xe5, 0xa4, 0x11, 0xf5, 0xbd, 0xb6, 0xad, 0x57, 0x25, 0x77, 0xd4, 0xae, 0xef, 0x8e, 0x47, 0xd0, - 0xc9, 0xe0, 0x3e, 0xe6, 0x13, 0xf2, 0x10, 0x1a, 0x63, 0xca, 0xd9, 0x95, 0xf0, 0x1c, 0xf3, 0xc9, - 0x21, 0xe5, 0xcc, 0x46, 0x49, 0xeb, 0xf3, 0x1a, 0xbc, 0x72, 0x94, 0x32, 0x0c, 0xfe, 0x20, 0x60, - 0xae, 0xf0, 0xe3, 0x48, 0x63, 0xff, 0xc5, 0xb5, 0x91, 0x57, 0xa0, 0xe9, 0x8d, 0x9d, 0x88, 0x86, - 0x19, 0xd8, 0xeb, 0xde, 0xf8, 0x29, 0x0d, 0x19, 0xf9, 0x2a, 0x6c, 0xba, 0xb9, 0x7e, 0x49, 0xc1, - 0x98, 0x6b, 0xdb, 0x4b, 0x54, 0xe9, 0x2a, 0x6f, 0x3c, 0x1c, 0x98, 0x0d, 0x74, 0x03, 0x7e, 0x13, - 0x0b, 0xba, 0x85, 0xd4, 0x70, 0x60, 0xae, 0x21, 0x6f, 0x81, 0x26, 0x41, 0x55, 0x35, 0xc4, 0x5c, - 0xef, 0x1b, 0x7b, 0x5d, 0x5b, 0xaf, 0xc8, 0x43, 0xb8, 0x79, 0xe6, 0xa7, 0x62, 0x46, 0x03, 0x1d, - 0x57, 0xf2, 0x14, 0x6e, 0x36, 0x11, 0xf9, 0x2a, 0x16, 0x39, 0x80, 0xed, 0x64, 0x3a, 0xe7, 0xbe, - 0xbb, 0xb4, 0xa5, 0x85, 0x5b, 0x2a, 0x79, 0xd6, 0xe7, 0x06, 0xdc, 0x1a, 0xa4, 0x71, 0xf2, 0x32, - 0x43, 0x68, 0xfd, 0xa2, 0x06, 0xb7, 0x55, 0x24, 0x9c, 0xd0, 0x54, 0xf8, 0xff, 0x26, 0x2b, 0xbe, - 0x06, 0x5b, 0xc5, 0xa9, 0x4a, 0xa0, 0xda, 0x8c, 0xaf, 0xc0, 0x66, 0x92, 0xdd, 0x43, 0xc9, 0x35, - 0x50, 0x6e, 0x23, 0xa7, 0x2e, 0x58, 0xbb, 0x76, 0x85, 0xb5, 0xeb, 0x15, 0x01, 0xd3, 0x87, 0x4e, - 0xae, 0x68, 0x38, 0x30, 0x9b, 0x28, 0x52, 0x26, 0x59, 0x3f, 0xaf, 0xc1, 0xb6, 0x74, 0xea, 0xff, - 0xd1, 0x90, 0x68, 0xfc, 0xb1, 0x06, 0x44, 0x45, 0xc7, 0x30, 0xf2, 0xd8, 0xf9, 0x7f, 0x12, 0x8b, - 0x57, 0x01, 0x4e, 0x7d, 0x16, 0x78, 0x65, 0x1c, 0xda, 0x48, 0x79, 0x21, 0x0c, 0x4c, 0x68, 0xa2, - 0x92, 0xdc, 0xfe, 0x6c, 0x29, 0xbb, 0x80, 0x9a, 0x08, 0x74, 0x17, 0x68, 0x5d, 0xbb, 0x0b, 0xe0, - 0x36, 0xdd, 0x05, 0x7e, 0x5b, 0x87, 0x8d, 0x61, 0xc4, 0x59, 0x2a, 0xfe, 0x97, 0x03, 0x89, 0xdc, - 0x85, 0x36, 0x67, 0x93, 0x50, 0x0e, 0x26, 0x03, 0xb3, 0x85, 0xfc, 0x82, 0x20, 0xb9, 0xae, 0xaa, - 0xac, 0xc3, 0x81, 0xd9, 0x56, 0xae, 0xcd, 0x09, 0xe4, 0x1e, 0x80, 0xf0, 0x43, 0xc6, 0x05, 0x0d, - 0x13, 0x6e, 0x42, 0xbf, 0xbe, 0xd7, 0xb0, 0x4b, 0x14, 0xd9, 0x05, 0xd2, 0xf8, 0xf9, 0x70, 0xc0, - 0xcd, 0x4e, 0xbf, 0x2e, 0xdb, 0xb8, 0x5a, 0x91, 0x6f, 0x41, 0x2b, 0x8d, 0x9f, 0x3b, 0x1e, 0x15, - 0xd4, 0xec, 0xa2, 0xf3, 0x76, 0x2a, 0xc1, 0x3e, 0x0c, 0xe2, 0xb1, 0xdd, 0x4c, 0xe3, 0xe7, 0x03, - 0x2a, 0xa8, 0xf5, 0x9b, 0x3a, 0x6c, 0x8c, 0x18, 0x4d, 0xdd, 0xe9, 0xea, 0x0e, 0xfb, 0x3a, 0xf4, - 0x52, 0xc6, 0x67, 0x81, 0x70, 0x0a, 0xb3, 0x94, 0xe7, 0xb6, 0x14, 0xfd, 0x28, 0x37, 0x2e, 0x83, - 0xbc, 0x7e, 0x05, 0xe4, 0x8d, 0x0a, 0xc8, 0x2d, 0xe8, 0x96, 0xf0, 0xe5, 0xe6, 0x1a, 0x9a, 0xbe, - 0x40, 0x23, 0x3d, 0xa8, 0x7b, 0x3c, 0x40, 0x8f, 0xb5, 0x6d, 0xf9, 0x49, 0xee, 0xc3, 0x8d, 0x24, - 0xa0, 0x2e, 0x9b, 0xc6, 0x81, 0xc7, 0x52, 0x67, 0x92, 0xc6, 0xb3, 0x04, 0xdd, 0xd5, 0xb5, 0x7b, - 0x25, 0xc6, 0x63, 0x49, 0x27, 0x6f, 0x43, 0xcb, 0xe3, 0x81, 0x23, 0xe6, 0x09, 0x43, 0x97, 0x6d, - 0x5e, 0x62, 0xfb, 0x80, 0x07, 0xcf, 0xe6, 0x09, 0xb3, 0x9b, 0x9e, 0xfa, 0x20, 0x0f, 0x61, 0x9b, - 0xb3, 0xd4, 0xa7, 0x81, 0xff, 0x19, 0xf3, 0x1c, 0x76, 0x9e, 0xa4, 0x4e, 0x12, 0xd0, 0x08, 0x3d, - 0xdb, 0xb5, 0x49, 0xc1, 0x7b, 0xff, 0x3c, 0x49, 0x4f, 0x02, 0x1a, 0x49, 0xc0, 0x44, 0x4a, 0xcf, - 0x58, 0xe0, 0xe4, 0x7e, 0x35, 0xa1, 0x6f, 0xec, 0x35, 0xec, 0x2d, 0x45, 0x7f, 0x96, 0x91, 0xad, - 0x7f, 0xd4, 0x0a, 0xff, 0x48, 0x28, 0xf9, 0x0a, 0xfe, 0x59, 0x65, 0xe8, 0xaa, 0x74, 0x6a, 0xbd, - 0xda, 0xa9, 0xaf, 0x41, 0x27, 0x64, 0x22, 0xf5, 0x5d, 0x05, 0x9e, 0xca, 0x35, 0x50, 0x24, 0x44, - 0x88, 0x40, 0x63, 0xea, 0x0b, 0xe5, 0xb5, 0xae, 0x8d, 0xdf, 0xe4, 0x7b, 0xb0, 0xcb, 0x19, 0x0d, - 0x98, 0xe7, 0xe4, 0x89, 0xc1, 0x1d, 0x8e, 0x96, 0x32, 0xcf, 0x5c, 0x47, 0xff, 0x9a, 0x4a, 0x62, - 0x94, 0x0b, 0x8c, 0x34, 0x9f, 0xec, 0xc3, 0xcd, 0xfc, 0x5a, 0xa5, 0x6d, 0x6a, 0xe4, 0x21, 0x05, - 0x2b, 0xdf, 0xf0, 0x0e, 0x98, 0x93, 0x20, 0x1e, 0xd3, 0xc0, 0xb9, 0x70, 0x2a, 0x96, 0xba, 0xba, - 0x7d, 0x5b, 0xf1, 0x47, 0x4b, 0x47, 0x5a, 0x7f, 0xae, 0xc1, 0x96, 0x2d, 0x6d, 0x61, 0x67, 0xec, - 0xa5, 0xcf, 0x91, 0x37, 0xa1, 0xee, 0x7b, 0x1c, 0x73, 0xa4, 0x73, 0x60, 0x2e, 0xde, 0x5b, 0xff, - 0x3e, 0x1d, 0x0e, 0xb8, 0x2d, 0x85, 0xc8, 0x1b, 0xb0, 0x11, 0xcf, 0x44, 0x32, 0x13, 0x0e, 0xf6, - 0x88, 0x6c, 0xa0, 0xec, 0x2a, 0xe2, 0x07, 0x48, 0xab, 0x0c, 0xe5, 0x56, 0x75, 0x28, 0xff, 0xbe, - 0x5e, 0x06, 0xf2, 0xbf, 0x35, 0x98, 0x35, 0x42, 0x8d, 0xeb, 0x20, 0xf4, 0x08, 0x3a, 0x0a, 0x1a, - 0x55, 0x75, 0xd7, 0xb0, 0xea, 0xde, 0xab, 0xdc, 0x83, 0x70, 0xc9, 0x8a, 0x6b, 0xab, 0xbe, 0xce, - 0xe5, 0x37, 0xf9, 0x3e, 0xdc, 0xb9, 0x98, 0x04, 0xa9, 0xc6, 0x28, 0xcb, 0x82, 0x9d, 0xe5, 0x2c, - 0xc8, 0x40, 0xf4, 0xc8, 0x37, 0x61, 0xbb, 0x94, 0x06, 0xc5, 0x46, 0x3d, 0xfa, 0x17, 0xbc, 0x62, - 0xcb, 0xea, 0x89, 0xf0, 0x57, 0x03, 0x36, 0x06, 0x2c, 0x60, 0xe2, 0x05, 0xd2, 0xa0, 0xa2, 0x85, - 0xd7, 0x2a, 0x5b, 0xf8, 0x42, 0x8f, 0xac, 0x5f, 0xdd, 0x23, 0x1b, 0x17, 0x7a, 0xe4, 0xeb, 0xd0, - 0x4d, 0x52, 0x3f, 0xa4, 0xe9, 0xdc, 0xf9, 0x94, 0xcd, 0xb3, 0x54, 0xe8, 0x68, 0xda, 0x13, 0x36, - 0xe7, 0x56, 0x04, 0xbb, 0x1f, 0xc6, 0xd4, 0x3b, 0xa4, 0x01, 0x8d, 0x5c, 0xa6, 0xcd, 0xe4, 0xab, - 0x5b, 0x76, 0x0f, 0xa0, 0x84, 0x64, 0x0d, 0x0f, 0x2c, 0x51, 0xac, 0xbf, 0x1b, 0xd0, 0x96, 0x07, - 0xe2, 0x64, 0xb9, 0x82, 0xfe, 0x85, 0x91, 0xa2, 0x56, 0x31, 0x52, 0xe4, 0xc3, 0x61, 0x06, 0x57, - 0x31, 0x2d, 0x96, 0xa6, 0xbe, 0xc6, 0xe2, 0xd4, 0xf7, 0x1a, 0x74, 0x7c, 0x79, 0x21, 0x27, 0xa1, - 0x62, 0xaa, 0x70, 0x6a, 0xdb, 0x80, 0xa4, 0x13, 0x49, 0x91, 0x63, 0x61, 0x26, 0x80, 0x63, 0xe1, - 0xfa, 0xb5, 0xc7, 0x42, 0xad, 0x04, 0xc7, 0xc2, 0x3f, 0xd5, 0xc0, 0xd4, 0x10, 0x17, 0x6f, 0x23, - 0x1f, 0x25, 0x1e, 0x3e, 0xd1, 0xdc, 0x85, 0x76, 0x1e, 0x65, 0xfa, 0x69, 0xa2, 0x20, 0x48, 0x5c, - 0x8f, 0x59, 0x18, 0xa7, 0xf3, 0x91, 0xff, 0x19, 0xd3, 0x86, 0x97, 0x28, 0xd2, 0xb6, 0xa7, 0xb3, - 0xd0, 0x8e, 0x9f, 0x73, 0x5d, 0x30, 0xb3, 0xa5, 0xb4, 0xcd, 0xc5, 0x61, 0x1e, 0x4b, 0x13, 0x5a, - 0xde, 0xb0, 0x41, 0x91, 0x64, 0x55, 0x22, 0x3b, 0xd0, 0x62, 0x91, 0xa7, 0xb8, 0x6b, 0xc8, 0x6d, - 0xb2, 0xc8, 0x43, 0xd6, 0x10, 0x36, 0xf5, 0x9b, 0x48, 0xcc, 0xb1, 0x78, 0xea, 0x92, 0x69, 0x5d, - 0xf2, 0x10, 0x75, 0xcc, 0x27, 0x27, 0x5a, 0xd2, 0xde, 0x50, 0xcf, 0x22, 0x7a, 0x49, 0xde, 0x87, - 0xae, 0x3c, 0x25, 0x57, 0xd4, 0xbc, 0xb6, 0xa2, 0x0e, 0x8b, 0xbc, 0x6c, 0x61, 0xfd, 0xca, 0x80, - 0x1b, 0x17, 0x20, 0x5c, 0x21, 0x8e, 0x9e, 0x40, 0x6b, 0xc4, 0x26, 0x52, 0x45, 0xf6, 0xd2, 0xb3, - 0x7f, 0xd9, 0xc3, 0xe1, 0x25, 0x0e, 0xb3, 0x73, 0x05, 0xd6, 0x27, 0xb9, 0x5b, 0x3f, 0x08, 0x66, - 0x7c, 0x7a, 0x14, 0x87, 0x89, 0xac, 0x0f, 0xde, 0x4a, 0xcf, 0x34, 0x57, 0x87, 0xb8, 0xf5, 0x33, - 0x03, 0x00, 0x93, 0x07, 0x8f, 0xbe, 0x10, 0x98, 0xc6, 0x2a, 0x81, 0x29, 0x67, 0xb7, 0x68, 0x16, - 0x3a, 0x29, 0x0b, 0xa8, 0x28, 0x6a, 0x21, 0xd7, 0xa7, 0x93, 0x68, 0x16, 0xda, 0x8a, 0x95, 0x15, - 0x08, 0xeb, 0x97, 0x06, 0x00, 0x16, 0x73, 0x75, 0x8d, 0xe5, 0xc6, 0x6c, 0x5c, 0xfd, 0xa3, 0xab, - 0xb6, 0x98, 0x7e, 0x87, 0x59, 0xfa, 0x71, 0xf4, 0x47, 0xbd, 0xca, 0x86, 0xdc, 0x1f, 0x85, 0xf1, - 0x3a, 0x43, 0x95, 0x0f, 0x7e, 0x6d, 0x40, 0xb7, 0xe4, 0x2a, 0xbe, 0x08, 0xa3, 0xb1, 0x5c, 0x29, - 0x70, 0x58, 0x93, 0xd9, 0xe3, 0xf0, 0x52, 0x42, 0x85, 0x45, 0x42, 0xed, 0x40, 0x0b, 0x21, 0x29, - 0x65, 0x54, 0xa4, 0x33, 0xea, 0x3e, 0xdc, 0x48, 0x99, 0xcb, 0x22, 0x11, 0xcc, 0x9d, 0x30, 0xf6, - 0xfc, 0x53, 0x9f, 0x79, 0x98, 0x57, 0x2d, 0xbb, 0x97, 0x31, 0x8e, 0x35, 0xdd, 0xfa, 0x8b, 0x01, - 0x9b, 0x3f, 0x9c, 0xb1, 0x74, 0xfe, 0x34, 0xf6, 0x98, 0xba, 0xd9, 0x17, 0x0f, 0x89, 0x77, 0xd1, - 0x16, 0x0d, 0x8f, 0x0a, 0xd7, 0x37, 0xfe, 0x75, 0xb8, 0x72, 0xbb, 0xc5, 0x75, 0x88, 0x4a, 0x88, - 0xd5, 0x0f, 0xe9, 0xeb, 0x40, 0x5c, 0x38, 0x56, 0xb7, 0x69, 0x05, 0xf1, 0x4f, 0x0d, 0xe8, 0x94, - 0x12, 0x53, 0xb6, 0x17, 0xdd, 0x8b, 0x54, 0x0b, 0x33, 0xb0, 0xe0, 0x76, 0xdc, 0xe2, 0xb9, 0x8c, - 0x6c, 0xc3, 0x5a, 0xc8, 0x27, 0xda, 0xe3, 0x5d, 0x5b, 0x2d, 0xc8, 0x2e, 0xb4, 0x42, 0x3e, 0xc1, - 0xdf, 0x1b, 0xba, 0x4a, 0xe7, 0x6b, 0xe9, 0xb6, 0x62, 0x84, 0x52, 0xc5, 0xaa, 0x20, 0x58, 0xbf, - 0x33, 0x80, 0xe8, 0x21, 0xe5, 0x85, 0xde, 0x42, 0x31, 0x60, 0xcb, 0x4f, 0x7e, 0x35, 0x35, 0xd4, - 0x95, 0x69, 0x4b, 0xed, 0xb5, 0x7e, 0xa1, 0xbd, 0xde, 0x87, 0x1b, 0x1e, 0x3b, 0xa5, 0x72, 0x9e, - 0x5a, 0xbe, 0x72, 0x4f, 0x33, 0xf2, 0xb1, 0xef, 0xcd, 0x77, 0xa0, 0x9d, 0xff, 0x05, 0x41, 0x7a, - 0xd0, 0x1d, 0x46, 0xbe, 0xc0, 0x1f, 0x44, 0x7e, 0x34, 0xe9, 0x7d, 0x89, 0x74, 0xa0, 0xf9, 0x03, - 0x46, 0x03, 0x31, 0x9d, 0xf7, 0x0c, 0xd2, 0x85, 0xd6, 0x7b, 0xe3, 0x28, 0x4e, 0x43, 0x1a, 0xf4, - 0x6a, 0x87, 0x6f, 0xff, 0xf8, 0xdb, 0x13, 0x5f, 0x4c, 0x67, 0x63, 0x69, 0xc9, 0xbe, 0x32, 0xed, - 0x1b, 0x7e, 0xac, 0xbf, 0xf6, 0x33, 0xaf, 0xed, 0xa3, 0xb5, 0xf9, 0x32, 0x19, 0x8f, 0xd7, 0x91, - 0xf2, 0xd6, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x7d, 0xc1, 0x60, 0x0e, 0xa8, 0x19, 0x00, 0x00, + 0x15, 0x67, 0x34, 0xb2, 0x25, 0x3d, 0xc9, 0xb6, 0xb6, 0xd7, 0xbb, 0x19, 0x7b, 0x37, 0x1b, 0x65, + 0xc2, 0x87, 0xc9, 0x16, 0xeb, 0xc5, 0x01, 0x92, 0xa2, 0x28, 0x36, 0xb1, 0x95, 0x2c, 0xaa, 0x8d, + 0x8d, 0x19, 0x6f, 0x52, 0x05, 0x97, 0xa9, 0xd6, 0x4c, 0x5b, 0x9a, 0x64, 0xbe, 0x98, 0x6e, 0x79, + 0x57, 0x39, 0x71, 0xe0, 0x46, 0xc1, 0x81, 0x2a, 0xfe, 0x0d, 0xae, 0x9c, 0xf8, 0xa8, 0x1c, 0x80, + 0x2a, 0xfe, 0x02, 0xfe, 0x0a, 0xee, 0x9c, 0xa8, 0x7e, 0xdd, 0xf3, 0x21, 0x79, 0x6c, 0x1c, 0x6f, + 0x51, 0x90, 0x22, 0xb7, 0xe9, 0xdf, 0x7b, 0xfd, 0xf1, 0x7e, 0xef, 0xbd, 0x7e, 0x4f, 0x2d, 0x58, + 0x0f, 0x62, 0xc1, 0xb2, 0x98, 0x86, 0x0f, 0xd2, 0x2c, 0x11, 0x09, 0xb9, 0x15, 0x05, 0xe1, 0xd9, + 0x8c, 0xab, 0xd1, 0x83, 0x5c, 0xb8, 0xdd, 0xf3, 0x92, 0x28, 0x4a, 0x62, 0x05, 0x6f, 0xf7, 0xb8, + 0x37, 0x65, 0x11, 0x55, 0x23, 0xfb, 0x0f, 0x06, 0xac, 0x1d, 0x24, 0x51, 0x9a, 0xc4, 0x2c, 0x16, + 0xa3, 0xf8, 0x34, 0x21, 0xb7, 0x61, 0x35, 0x4e, 0x7c, 0x36, 0x1a, 0x5a, 0xc6, 0xc0, 0xd8, 0x31, + 0x1d, 0x3d, 0x22, 0x04, 0x9a, 0x59, 0x12, 0x32, 0xab, 0x31, 0x30, 0x76, 0x3a, 0x0e, 0x7e, 0x93, + 0x47, 0x00, 0x5c, 0x50, 0xc1, 0x5c, 0x2f, 0xf1, 0x99, 0x65, 0x0e, 0x8c, 0x9d, 0xf5, 0xbd, 0xc1, + 0x83, 0xda, 0x53, 0x3c, 0x38, 0x91, 0x8a, 0x07, 0x89, 0xcf, 0x9c, 0x0e, 0xcf, 0x3f, 0xc9, 0xdb, + 0x00, 0xec, 0xb9, 0xc8, 0xa8, 0x1b, 0xc4, 0xa7, 0x89, 0xd5, 0x1c, 0x98, 0x3b, 0xdd, 0xbd, 0x57, + 0x17, 0x17, 0xd0, 0x87, 0x7f, 0xc2, 0xe6, 0x1f, 0xd2, 0x70, 0xc6, 0x8e, 0x69, 0x90, 0x39, 0x1d, + 0x9c, 0x24, 0x8f, 0x6b, 0xff, 0xdd, 0x80, 0x8d, 0xc2, 0x00, 0xdc, 0x83, 0x93, 0xef, 0xc2, 0x0a, + 0x6e, 0x81, 0x16, 0x74, 0xf7, 0xbe, 0x7c, 0xc1, 0x89, 0x16, 0xec, 0x76, 0xd4, 0x14, 0xf2, 0x01, + 0xdc, 0xe4, 0xb3, 0xb1, 0x97, 0x8b, 0x5c, 0x44, 0xb9, 0xd5, 0xc0, 0xa3, 0x5d, 0x6d, 0x25, 0x52, + 0x5d, 0x40, 0x1f, 0xe9, 0x0d, 0x58, 0x95, 0x2b, 0xcd, 0x38, 0xb2, 0xd4, 0xdd, 0xbb, 0x53, 0x6b, + 0xe4, 0x09, 0xaa, 0x38, 0x5a, 0xd5, 0xbe, 0x03, 0x5b, 0x8f, 0x99, 0x58, 0xb2, 0xce, 0x61, 0x3f, + 0x9d, 0x31, 0x2e, 0xb4, 0xf0, 0x69, 0x10, 0xb1, 0xa7, 0x81, 0xf7, 0xf1, 0xc1, 0x94, 0xc6, 0x31, + 0x0b, 0x73, 0xe1, 0xcb, 0x70, 0xe7, 0x31, 0xc3, 0x09, 0x01, 0x17, 0x81, 0xc7, 0x97, 0xc4, 0xb7, + 0xe0, 0xe6, 0x63, 0x26, 0x86, 0xfe, 0x12, 0xfc, 0x21, 0xb4, 0x8f, 0xa4, 0xb3, 0x65, 0x18, 0x7c, + 0x07, 0x5a, 0xd4, 0xf7, 0x33, 0xc6, 0xb9, 0x66, 0xf1, 0x6e, 0xed, 0x89, 0xdf, 0x51, 0x3a, 0x4e, + 0xae, 0x5c, 0x17, 0x26, 0xf6, 0x47, 0x00, 0xa3, 0x38, 0x10, 0xc7, 0x34, 0xa3, 0x11, 0xbf, 0x30, + 0xc0, 0x86, 0xd0, 0xe3, 0x82, 0x66, 0xc2, 0x4d, 0x51, 0x4f, 0x53, 0x7e, 0x85, 0x68, 0xe8, 0xe2, + 0x34, 0xb5, 0xba, 0xfd, 0x63, 0x80, 0x13, 0x91, 0x05, 0xf1, 0xe4, 0xfd, 0x80, 0x0b, 0xb9, 0xd7, + 0x99, 0xd4, 0x93, 0x46, 0x98, 0x3b, 0x1d, 0x47, 0x8f, 0x2a, 0xee, 0x68, 0x5c, 0xdd, 0x1d, 0x8f, + 0xa0, 0x9b, 0xd3, 0x7d, 0xc8, 0x27, 0xe4, 0x21, 0x34, 0xc7, 0x94, 0xb3, 0x4b, 0xe9, 0x39, 0xe4, + 0x93, 0x7d, 0xca, 0x99, 0x83, 0x9a, 0xf6, 0xa7, 0x0d, 0x78, 0xe9, 0x20, 0x63, 0x18, 0xfc, 0x61, + 0xc8, 0x3c, 0x11, 0x24, 0xb1, 0xe6, 0xfe, 0xb3, 0xaf, 0x46, 0x5e, 0x82, 0x96, 0x3f, 0x76, 0x63, + 0x1a, 0xe5, 0x64, 0xaf, 0xfa, 0xe3, 0x23, 0x1a, 0x31, 0xf2, 0x55, 0x58, 0xf7, 0x8a, 0xf5, 0x25, + 0x82, 0x31, 0xd7, 0x71, 0x96, 0x50, 0xe9, 0x2a, 0x7f, 0x3c, 0x1a, 0x5a, 0x4d, 0x74, 0x03, 0x7e, + 0x13, 0x1b, 0x7a, 0xa5, 0xd6, 0x68, 0x68, 0xad, 0xa0, 0x6c, 0x01, 0x93, 0xa4, 0xaa, 0x3b, 0xc4, + 0x5a, 0x1d, 0x18, 0x3b, 0x3d, 0x47, 0x8f, 0xc8, 0x43, 0xb8, 0x79, 0x16, 0x64, 0x62, 0x46, 0x43, + 0x1d, 0x57, 0x72, 0x17, 0x6e, 0xb5, 0x90, 0xf9, 0x3a, 0x11, 0xd9, 0x83, 0xcd, 0x74, 0x3a, 0xe7, + 0x81, 0xb7, 0x34, 0xa5, 0x8d, 0x53, 0x6a, 0x65, 0xf6, 0xa7, 0x06, 0xdc, 0x1a, 0x66, 0x49, 0xfa, + 0x79, 0xa6, 0xd0, 0xfe, 0x65, 0x03, 0x6e, 0xab, 0x48, 0x38, 0xa6, 0x99, 0x08, 0xfe, 0x43, 0x56, + 0x7c, 0x0d, 0x36, 0xca, 0x5d, 0x95, 0x42, 0xbd, 0x19, 0x5f, 0x81, 0xf5, 0x34, 0x3f, 0x87, 0xd2, + 0x6b, 0xa2, 0xde, 0x5a, 0x81, 0x2e, 0x58, 0xbb, 0x72, 0x89, 0xb5, 0xab, 0x35, 0x01, 0x33, 0x80, + 0x6e, 0xb1, 0xd0, 0x68, 0x68, 0xb5, 0x50, 0xa5, 0x0a, 0xd9, 0xbf, 0x68, 0xc0, 0xa6, 0x74, 0xea, + 0x17, 0x6c, 0x48, 0x36, 0xfe, 0xd8, 0x00, 0xa2, 0xa2, 0x63, 0x14, 0xfb, 0xec, 0xf9, 0x7f, 0x93, + 0x8b, 0x97, 0x01, 0x4e, 0x03, 0x16, 0xfa, 0x55, 0x1e, 0x3a, 0x88, 0xbc, 0x10, 0x07, 0x16, 0xb4, + 0x70, 0x91, 0xc2, 0xfe, 0x7c, 0x28, 0xab, 0x80, 0xea, 0x08, 0x74, 0x15, 0x68, 0x5f, 0xb9, 0x0a, + 0xe0, 0x34, 0x5d, 0x05, 0x7e, 0x6b, 0xc2, 0xda, 0x28, 0xe6, 0x2c, 0x13, 0xff, 0xcf, 0x81, 0x44, + 0xee, 0x42, 0x87, 0xb3, 0x49, 0x24, 0x1b, 0x93, 0xa1, 0xd5, 0x46, 0x79, 0x09, 0x48, 0xa9, 0xa7, + 0x6e, 0xd6, 0xd1, 0xd0, 0xea, 0x28, 0xd7, 0x16, 0x00, 0xb9, 0x07, 0x20, 0x82, 0x88, 0x71, 0x41, + 0xa3, 0x94, 0x5b, 0x30, 0x30, 0x77, 0x9a, 0x4e, 0x05, 0x91, 0x55, 0x20, 0x4b, 0x9e, 0x8d, 0x86, + 0xdc, 0xea, 0x0e, 0x4c, 0x59, 0xc6, 0xd5, 0x88, 0x7c, 0x0b, 0xda, 0x59, 0xf2, 0xcc, 0xf5, 0xa9, + 0xa0, 0x56, 0x0f, 0x9d, 0xb7, 0x55, 0x4b, 0xf6, 0x7e, 0x98, 0x8c, 0x9d, 0x56, 0x96, 0x3c, 0x1b, + 0x52, 0x41, 0xed, 0xbf, 0x98, 0xb0, 0x76, 0xc2, 0x68, 0xe6, 0x4d, 0xaf, 0xef, 0xb0, 0xaf, 0x43, + 0x3f, 0x63, 0x7c, 0x16, 0x0a, 0xb7, 0x34, 0x4b, 0x79, 0x6e, 0x43, 0xe1, 0x07, 0x85, 0x71, 0x39, + 0xe5, 0xe6, 0x25, 0x94, 0x37, 0x6b, 0x28, 0xb7, 0xa1, 0x57, 0xe1, 0x97, 0x5b, 0x2b, 0x68, 0xfa, + 0x02, 0x46, 0xfa, 0x60, 0xfa, 0x3c, 0x44, 0x8f, 0x75, 0x1c, 0xf9, 0x49, 0xee, 0xc3, 0x8d, 0x34, + 0xa4, 0x1e, 0x9b, 0x26, 0xa1, 0xcf, 0x32, 0x77, 0x92, 0x25, 0xb3, 0x14, 0xdd, 0xd5, 0x73, 0xfa, + 0x15, 0xc1, 0x63, 0x89, 0x93, 0x37, 0xa1, 0xed, 0xf3, 0xd0, 0x15, 0xf3, 0x94, 0xa1, 0xcb, 0xd6, + 0x2f, 0xb0, 0x7d, 0xc8, 0xc3, 0xa7, 0xf3, 0x94, 0x39, 0x2d, 0x5f, 0x7d, 0x90, 0x87, 0xb0, 0xc9, + 0x59, 0x16, 0xd0, 0x30, 0xf8, 0x84, 0xf9, 0x2e, 0x7b, 0x9e, 0x66, 0x6e, 0x1a, 0xd2, 0x18, 0x3d, + 0xdb, 0x73, 0x48, 0x29, 0x7b, 0xf7, 0x79, 0x9a, 0x1d, 0x87, 0x34, 0x26, 0x3b, 0xd0, 0x4f, 0x66, + 0x22, 0x9d, 0x09, 0x17, 0xb3, 0x8f, 0xbb, 0x81, 0x8f, 0x8e, 0x36, 0x9d, 0x75, 0x85, 0xbf, 0x87, + 0xf0, 0xc8, 0x97, 0xd4, 0x8a, 0x8c, 0x9e, 0xb1, 0xd0, 0x2d, 0x22, 0xc0, 0xea, 0x0e, 0x8c, 0x9d, + 0xa6, 0xb3, 0xa1, 0xf0, 0xa7, 0x39, 0x6c, 0xff, 0xa3, 0xe2, 0x49, 0x49, 0x3a, 0xbf, 0x86, 0x27, + 0xaf, 0xd3, 0x9e, 0xd5, 0xba, 0xdf, 0xac, 0x77, 0xff, 0x2b, 0xd0, 0x8d, 0x98, 0xc8, 0x02, 0x4f, + 0xd1, 0xac, 0xb2, 0x12, 0x14, 0x84, 0x5c, 0x12, 0x68, 0x4e, 0x03, 0xa1, 0xfc, 0xdb, 0x73, 0xf0, + 0x5b, 0x4e, 0xe2, 0x61, 0xe0, 0x31, 0xdf, 0x1d, 0x87, 0xc9, 0x58, 0xd3, 0x0a, 0x0a, 0x92, 0xc1, + 0x2c, 0xe9, 0xd4, 0x0a, 0xf1, 0x2c, 0x72, 0xbd, 0x64, 0x16, 0x0b, 0x0b, 0x30, 0x88, 0xd6, 0x15, + 0x7e, 0x34, 0x8b, 0x0e, 0x24, 0x4a, 0x5e, 0x83, 0x35, 0xad, 0x99, 0x9c, 0x9e, 0x72, 0x26, 0x90, + 0x4b, 0xd3, 0xe9, 0x29, 0xf0, 0x87, 0x88, 0x91, 0xef, 0xc1, 0x36, 0x67, 0x34, 0x64, 0xbe, 0x5b, + 0xa4, 0x2c, 0x77, 0x39, 0x32, 0xcb, 0x7c, 0x6b, 0x15, 0xfd, 0x64, 0x29, 0x8d, 0x93, 0x42, 0xe1, + 0x44, 0xcb, 0xc9, 0x2e, 0xdc, 0x2c, 0x68, 0xa8, 0x4c, 0x53, 0xcd, 0x18, 0x29, 0x45, 0xc5, 0x84, + 0xb7, 0xc0, 0x9a, 0x84, 0xc9, 0x98, 0x86, 0xee, 0xb9, 0x5d, 0xf1, 0x12, 0x36, 0x9d, 0xdb, 0x4a, + 0x7e, 0xb2, 0xb4, 0xa5, 0xfd, 0xe7, 0x06, 0x6c, 0x38, 0x92, 0x3b, 0x76, 0xc6, 0x3e, 0xf7, 0xd9, + 0xfb, 0x3a, 0x98, 0x81, 0xcf, 0x31, 0x7b, 0xbb, 0x7b, 0xd6, 0xe2, 0xb9, 0xf5, 0x2f, 0xe7, 0xd1, + 0x90, 0x3b, 0x52, 0x49, 0xba, 0x71, 0x21, 0x7f, 0x34, 0xbb, 0xbd, 0x6a, 0xf2, 0xd4, 0xa6, 0x4e, + 0xbb, 0x3e, 0x75, 0x7e, 0x6f, 0x56, 0x89, 0xfc, 0x5f, 0x4d, 0x1e, 0xcd, 0x50, 0xf3, 0x2a, 0x0c, + 0x3d, 0x82, 0xae, 0xbe, 0x5a, 0xb0, 0x1e, 0xac, 0x60, 0x3d, 0xb8, 0x57, 0x3b, 0x07, 0xe9, 0x92, + 0xb5, 0xc0, 0x51, 0x1d, 0x07, 0x97, 0xdf, 0xe4, 0xfb, 0x70, 0xe7, 0x7c, 0x12, 0x64, 0x9a, 0xa3, + 0x3c, 0x0b, 0xb6, 0x96, 0xb3, 0x20, 0x27, 0xd1, 0x27, 0xdf, 0x84, 0xcd, 0x4a, 0x1a, 0x94, 0x13, + 0xf5, 0x8f, 0x92, 0x52, 0x56, 0x4e, 0xb9, 0x7e, 0x22, 0xfc, 0xcd, 0x80, 0xb5, 0x21, 0x0b, 0x99, + 0x78, 0x81, 0x34, 0xa8, 0x69, 0x2e, 0x1a, 0xb5, 0xcd, 0xc5, 0x42, 0xf5, 0x36, 0x2f, 0xaf, 0xde, + 0xcd, 0x73, 0xd5, 0xfb, 0x55, 0xe8, 0xa5, 0x59, 0x10, 0xd1, 0x6c, 0xee, 0x7e, 0xcc, 0xe6, 0x79, + 0x2a, 0x74, 0x35, 0xf6, 0x84, 0xcd, 0xb9, 0x1d, 0xc3, 0xf6, 0xfb, 0x09, 0xf5, 0xf7, 0x69, 0x48, + 0x63, 0x8f, 0x69, 0x33, 0xf9, 0xf5, 0x2d, 0xbb, 0x07, 0x50, 0x61, 0xb2, 0x81, 0x1b, 0x56, 0x10, + 0xfb, 0x9f, 0x06, 0x74, 0xe4, 0x86, 0xd8, 0xf3, 0x5e, 0x63, 0xfd, 0x85, 0x66, 0xa7, 0x51, 0xd3, + 0xec, 0x14, 0x6d, 0x6b, 0x4e, 0x57, 0xd9, 0xc7, 0x56, 0xfa, 0xd1, 0xe6, 0x62, 0x3f, 0xfa, 0x0a, + 0x74, 0x03, 0x79, 0x20, 0x37, 0xa5, 0x62, 0xaa, 0x78, 0xea, 0x38, 0x80, 0xd0, 0xb1, 0x44, 0x64, + 0xc3, 0x9a, 0x2b, 0x60, 0xc3, 0xba, 0x7a, 0xe5, 0x86, 0x55, 0x2f, 0x82, 0x0d, 0xeb, 0x9f, 0x1a, + 0x60, 0x69, 0x8a, 0xcb, 0x57, 0x9b, 0x0f, 0x52, 0x1f, 0x1f, 0x8f, 0xee, 0x42, 0xa7, 0x88, 0x32, + 0xfd, 0x68, 0x52, 0x02, 0x92, 0xd7, 0x43, 0x16, 0x25, 0xd9, 0xfc, 0x24, 0xf8, 0x84, 0x69, 0xc3, + 0x2b, 0x88, 0xb4, 0xed, 0x68, 0x16, 0x39, 0xc9, 0x33, 0xae, 0x2f, 0xcc, 0x7c, 0x28, 0x6d, 0xf3, + 0xf0, 0x67, 0x06, 0x5e, 0x4d, 0x68, 0x79, 0xd3, 0x01, 0x05, 0xc9, 0x5b, 0x89, 0x6c, 0x41, 0x9b, + 0xc5, 0xbe, 0x92, 0xae, 0xa0, 0xb4, 0xc5, 0x62, 0x1f, 0x45, 0x23, 0x58, 0xd7, 0xaf, 0x35, 0x09, + 0xc7, 0xcb, 0x53, 0x5f, 0x99, 0xf6, 0x05, 0x4f, 0x64, 0x87, 0x7c, 0x72, 0xac, 0x35, 0x9d, 0x35, + 0xf5, 0x60, 0xa3, 0x87, 0xe4, 0x5d, 0xe8, 0xc9, 0x5d, 0x8a, 0x85, 0x5a, 0x57, 0x5e, 0xa8, 0xcb, + 0x62, 0x3f, 0x1f, 0xd8, 0xbf, 0x36, 0xe0, 0xc6, 0x39, 0x0a, 0xaf, 0x11, 0x47, 0x4f, 0xa0, 0x7d, + 0xc2, 0x26, 0x72, 0x89, 0xfc, 0x0d, 0x6a, 0xf7, 0xa2, 0x27, 0xcd, 0x0b, 0x1c, 0xe6, 0x14, 0x0b, + 0xd8, 0x1f, 0x15, 0x6e, 0x7d, 0x2f, 0x9c, 0xf1, 0xe9, 0x41, 0x12, 0xa5, 0xf2, 0x7e, 0xf0, 0xaf, + 0xf5, 0x80, 0x74, 0x79, 0x88, 0xdb, 0x3f, 0x37, 0x00, 0x30, 0x79, 0x70, 0xeb, 0x73, 0x81, 0x69, + 0x5c, 0x27, 0x30, 0x65, 0x57, 0x29, 0xbb, 0x99, 0x8c, 0x85, 0x54, 0x94, 0x77, 0x21, 0xd7, 0xbb, + 0x93, 0x78, 0x16, 0x39, 0x4a, 0x94, 0x5f, 0x10, 0xf6, 0xaf, 0x0c, 0x00, 0xbc, 0xcc, 0xd5, 0x31, + 0x96, 0x0b, 0xb3, 0x71, 0xf9, 0xcf, 0xc1, 0xc6, 0x62, 0xfa, 0xed, 0xe7, 0xe9, 0xc7, 0xd1, 0x1f, + 0x66, 0x9d, 0x0d, 0x85, 0x3f, 0x4a, 0xe3, 0x75, 0x86, 0x2a, 0x1f, 0xfc, 0xc6, 0x80, 0x5e, 0xc5, + 0x55, 0x7c, 0x91, 0x46, 0x63, 0xf9, 0xa6, 0xc0, 0xe6, 0x50, 0x66, 0x8f, 0xcb, 0x2b, 0x09, 0x15, + 0x95, 0x09, 0xb5, 0x05, 0x6d, 0xa4, 0xa4, 0x92, 0x51, 0xb1, 0xce, 0xa8, 0xfb, 0x70, 0x23, 0x63, + 0x1e, 0x8b, 0x45, 0x38, 0x77, 0xa3, 0xc4, 0x0f, 0x4e, 0x03, 0xe6, 0x63, 0x5e, 0xb5, 0x9d, 0x7e, + 0x2e, 0x38, 0xd4, 0xb8, 0xfd, 0x57, 0x03, 0xd6, 0x7f, 0x34, 0x63, 0xd9, 0xfc, 0x28, 0xf1, 0x99, + 0x3a, 0xd9, 0x67, 0x0f, 0x89, 0xb7, 0xd1, 0x16, 0x4d, 0x8f, 0x0a, 0xd7, 0xd7, 0xfe, 0x7d, 0xb8, + 0x72, 0xa7, 0xcd, 0x75, 0x88, 0x4a, 0x8a, 0xd5, 0x4f, 0xfc, 0xab, 0x50, 0x5c, 0x3a, 0x56, 0x97, + 0x69, 0x45, 0xf1, 0xcf, 0x0c, 0xe8, 0x56, 0x12, 0x53, 0x96, 0x17, 0x5d, 0x8b, 0x54, 0x09, 0x33, + 0xf0, 0xc2, 0xed, 0x7a, 0xe5, 0x43, 0x1e, 0xd9, 0x84, 0x95, 0x88, 0x4f, 0xb4, 0xc7, 0x7b, 0x8e, + 0x1a, 0x90, 0x6d, 0x68, 0x47, 0x7c, 0x82, 0xbf, 0x84, 0xf4, 0x2d, 0x5d, 0x8c, 0xa5, 0xdb, 0xca, + 0x16, 0x4a, 0x5d, 0x56, 0x25, 0x60, 0xff, 0xce, 0x00, 0xa2, 0x9b, 0x94, 0x17, 0x7a, 0xa5, 0xc5, + 0x80, 0xad, 0x3e, 0x46, 0x36, 0x54, 0x53, 0x57, 0xc5, 0x96, 0xca, 0xab, 0x79, 0xae, 0xbc, 0xde, + 0x87, 0x1b, 0x3e, 0x3b, 0xa5, 0xb2, 0x9f, 0x5a, 0x3e, 0x72, 0x5f, 0x0b, 0x8a, 0xb6, 0xef, 0xf5, + 0xb7, 0xa0, 0x53, 0xfc, 0x39, 0x42, 0xfa, 0xd0, 0x1b, 0xc5, 0x81, 0xc0, 0x9f, 0x6a, 0x41, 0x3c, + 0xe9, 0x7f, 0x89, 0x74, 0xa1, 0xf5, 0x03, 0x46, 0x43, 0x31, 0x9d, 0xf7, 0x0d, 0xd2, 0x83, 0xf6, + 0x3b, 0xe3, 0x38, 0xc9, 0x22, 0x1a, 0xf6, 0x1b, 0xfb, 0x6f, 0xfe, 0xe4, 0xdb, 0x93, 0x40, 0x4c, + 0x67, 0x63, 0x69, 0xc9, 0xae, 0x32, 0xed, 0x1b, 0x41, 0xa2, 0xbf, 0x76, 0x73, 0xaf, 0xed, 0xa2, + 0xb5, 0xc5, 0x30, 0x1d, 0x8f, 0x57, 0x11, 0x79, 0xe3, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x41, + 0xd9, 0x70, 0x5f, 0x42, 0x1a, 0x00, 0x00, } diff --git a/internal/proto/milvus.proto b/internal/proto/milvus.proto index 44988bdce7..6452ae890c 100644 --- a/internal/proto/milvus.proto +++ b/internal/proto/milvus.proto @@ -329,8 +329,9 @@ message SearchRequest { // serialized `PlaceholderGroup` bytes placeholder_group = 6; // must common.DslType dsl_type = 7; // must - repeated common.KeyValuePair search_params = 8; // must - uint64 travel_timestamp = 9; + repeated string output_fields = 8; + repeated common.KeyValuePair search_params = 9; // must + uint64 travel_timestamp = 10; } message RetrieveRequest { @@ -357,7 +358,7 @@ message Hits { message SearchResults { common.Status status = 1; - repeated bytes hits = 2; + schema.SearchResultData results = 2; } message FlushRequest { diff --git a/internal/proto/milvuspb/milvus.pb.go b/internal/proto/milvuspb/milvus.pb.go index 8992081fe4..14767224fa 100644 --- a/internal/proto/milvuspb/milvus.pb.go +++ b/internal/proto/milvuspb/milvus.pb.go @@ -2459,8 +2459,9 @@ type SearchRequest struct { // serialized `PlaceholderGroup` PlaceholderGroup []byte `protobuf:"bytes,6,opt,name=placeholder_group,json=placeholderGroup,proto3" json:"placeholder_group,omitempty"` DslType commonpb.DslType `protobuf:"varint,7,opt,name=dsl_type,json=dslType,proto3,enum=milvus.proto.common.DslType" json:"dsl_type,omitempty"` - SearchParams []*commonpb.KeyValuePair `protobuf:"bytes,8,rep,name=search_params,json=searchParams,proto3" json:"search_params,omitempty"` - TravelTimestamp uint64 `protobuf:"varint,9,opt,name=travel_timestamp,json=travelTimestamp,proto3" json:"travel_timestamp,omitempty"` + OutputFields []string `protobuf:"bytes,8,rep,name=output_fields,json=outputFields,proto3" json:"output_fields,omitempty"` + SearchParams []*commonpb.KeyValuePair `protobuf:"bytes,9,rep,name=search_params,json=searchParams,proto3" json:"search_params,omitempty"` + TravelTimestamp uint64 `protobuf:"varint,10,opt,name=travel_timestamp,json=travelTimestamp,proto3" json:"travel_timestamp,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2540,6 +2541,13 @@ func (m *SearchRequest) GetDslType() commonpb.DslType { return commonpb.DslType_Dsl } +func (m *SearchRequest) GetOutputFields() []string { + if m != nil { + return m.OutputFields + } + return nil +} + func (m *SearchRequest) GetSearchParams() []*commonpb.KeyValuePair { if m != nil { return m.SearchParams @@ -2752,11 +2760,11 @@ func (m *Hits) GetScores() []float32 { } type SearchResults struct { - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Hits [][]byte `protobuf:"bytes,2,rep,name=hits,proto3" json:"hits,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Results *schemapb.SearchResultData `protobuf:"bytes,2,opt,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *SearchResults) Reset() { *m = SearchResults{} } @@ -2791,9 +2799,9 @@ func (m *SearchResults) GetStatus() *commonpb.Status { return nil } -func (m *SearchResults) GetHits() [][]byte { +func (m *SearchResults) GetResults() *schemapb.SearchResultData { if m != nil { - return m.Hits + return m.Results } return nil } @@ -3562,165 +3570,166 @@ func init() { func init() { proto.RegisterFile("milvus.proto", fileDescriptor_02345ba45cc0e303) } var fileDescriptor_02345ba45cc0e303 = []byte{ - // 2520 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x1a, 0x4d, 0x6f, 0xdc, 0xc6, - 0x55, 0xb3, 0xab, 0xfd, 0x7a, 0xe2, 0x4a, 0xeb, 0xd1, 0xd7, 0x7a, 0xfd, 0x91, 0x35, 0x13, 0x37, - 0x6b, 0xd9, 0x91, 0x13, 0x39, 0x6e, 0x5a, 0xf4, 0x33, 0xb6, 0x60, 0x5b, 0x70, 0xec, 0x2a, 0x94, - 0x1b, 0x24, 0x0d, 0x8c, 0x05, 0xb5, 0x1c, 0x6b, 0x09, 0x71, 0xc9, 0x2d, 0x67, 0x28, 0x59, 0x3e, - 0x15, 0x48, 0x50, 0xa0, 0x68, 0xe3, 0x1c, 0x5a, 0xb4, 0x68, 0x0f, 0x45, 0xd1, 0x22, 0x87, 0xf6, - 0xd2, 0x16, 0x29, 0x50, 0xa0, 0xa7, 0x1e, 0x72, 0xe8, 0xa1, 0x40, 0x8b, 0xfe, 0x86, 0xf6, 0xd8, - 0xff, 0x50, 0x70, 0x86, 0xe4, 0x92, 0xd4, 0x70, 0xb5, 0xf2, 0xc6, 0x95, 0x74, 0x23, 0xdf, 0xbc, - 0xf7, 0xe6, 0x7d, 0xcd, 0x9b, 0x37, 0x6f, 0x06, 0x94, 0x9e, 0x69, 0xed, 0x78, 0x74, 0xb9, 0xef, - 0x3a, 0xcc, 0xc1, 0xb3, 0xf1, 0xbf, 0x65, 0xf1, 0xd3, 0x50, 0x3a, 0x4e, 0xaf, 0xe7, 0xd8, 0x02, - 0xd8, 0x50, 0x68, 0xa7, 0x4b, 0x7a, 0xba, 0xf8, 0x53, 0x3f, 0x43, 0xb0, 0x78, 0xd3, 0x25, 0x3a, - 0x23, 0x37, 0x1d, 0xcb, 0x22, 0x1d, 0x66, 0x3a, 0xb6, 0x46, 0xbe, 0xeb, 0x11, 0xca, 0xf0, 0xab, - 0x30, 0xb9, 0xa9, 0x53, 0x52, 0x47, 0x4d, 0xd4, 0x9a, 0x5a, 0x39, 0xbb, 0x9c, 0xe0, 0x1d, 0xf0, - 0xbc, 0x47, 0xb7, 0x6e, 0xe8, 0x94, 0x68, 0x1c, 0x13, 0x2f, 0x42, 0xc9, 0xd8, 0x6c, 0xdb, 0x7a, - 0x8f, 0xd4, 0x73, 0x4d, 0xd4, 0xaa, 0x68, 0x45, 0x63, 0xf3, 0xbe, 0xde, 0x23, 0xf8, 0x65, 0x98, - 0xe9, 0x44, 0xfc, 0x05, 0x42, 0x9e, 0x23, 0x4c, 0x0f, 0xc0, 0x1c, 0x71, 0x01, 0x8a, 0x42, 0xbe, - 0xfa, 0x64, 0x13, 0xb5, 0x14, 0x2d, 0xf8, 0xc3, 0xe7, 0x00, 0x68, 0x57, 0x77, 0x0d, 0xda, 0xb6, - 0xbd, 0x5e, 0xbd, 0xd0, 0x44, 0xad, 0x82, 0x56, 0x11, 0x90, 0xfb, 0x5e, 0x4f, 0xfd, 0x21, 0x82, - 0xf9, 0x55, 0xd7, 0xe9, 0x1f, 0x0b, 0x25, 0xd4, 0xdf, 0x22, 0x98, 0xbb, 0xa3, 0xd3, 0xe3, 0x61, - 0xd1, 0x73, 0x00, 0xcc, 0xec, 0x91, 0x36, 0x65, 0x7a, 0xaf, 0xcf, 0xad, 0x3a, 0xa9, 0x55, 0x7c, - 0xc8, 0x86, 0x0f, 0x50, 0xdf, 0x03, 0xe5, 0x86, 0xe3, 0x58, 0x1a, 0xa1, 0x7d, 0xc7, 0xa6, 0x04, - 0x5f, 0x83, 0x22, 0x65, 0x3a, 0xf3, 0x68, 0x20, 0xe4, 0x19, 0xa9, 0x90, 0x1b, 0x1c, 0x45, 0x0b, - 0x50, 0xf1, 0x1c, 0x14, 0x76, 0x74, 0xcb, 0x13, 0x32, 0x96, 0x35, 0xf1, 0xa3, 0xbe, 0x0f, 0xd3, - 0x1b, 0xcc, 0x35, 0xed, 0xad, 0xcf, 0x91, 0x79, 0x25, 0x64, 0xfe, 0x2f, 0x04, 0xa7, 0x57, 0x09, - 0xed, 0xb8, 0xe6, 0xe6, 0x31, 0x09, 0x5d, 0x15, 0x94, 0x01, 0x64, 0x6d, 0x95, 0x9b, 0x3a, 0xaf, - 0x25, 0x60, 0x29, 0x67, 0x14, 0xd2, 0xce, 0xf8, 0x65, 0x0e, 0x1a, 0x32, 0xa5, 0xc6, 0x31, 0xdf, - 0xd7, 0xa2, 0x15, 0x95, 0xe3, 0x44, 0x17, 0x93, 0x44, 0x41, 0x36, 0x18, 0xcc, 0xb6, 0xc1, 0x01, - 0xd1, 0xc2, 0x4b, 0x6b, 0x95, 0x97, 0x68, 0xb5, 0x02, 0xf3, 0x3b, 0xa6, 0xcb, 0x3c, 0xdd, 0x6a, - 0x77, 0xba, 0xba, 0x6d, 0x13, 0x8b, 0xdb, 0x89, 0xd6, 0x27, 0x9b, 0xf9, 0x56, 0x45, 0x9b, 0x0d, - 0x06, 0x6f, 0x8a, 0x31, 0xdf, 0x58, 0x14, 0xbf, 0x0e, 0x0b, 0xfd, 0xee, 0x1e, 0x35, 0x3b, 0xfb, - 0x88, 0x0a, 0x9c, 0x68, 0x2e, 0x1c, 0x8d, 0x53, 0xf1, 0x75, 0xfe, 0x96, 0xa3, 0x1b, 0xc7, 0x63, - 0x9d, 0x3f, 0x45, 0x50, 0xd7, 0x88, 0x45, 0x74, 0x7a, 0x3c, 0x42, 0x50, 0xfd, 0x09, 0x82, 0xf3, - 0xb7, 0x09, 0x8b, 0x39, 0x93, 0xe9, 0xcc, 0xa4, 0xcc, 0xec, 0xd0, 0xa3, 0x14, 0xeb, 0x63, 0x04, - 0x2f, 0x64, 0x8a, 0x35, 0x4e, 0x6c, 0xbf, 0x01, 0x05, 0xff, 0x8b, 0xd6, 0x73, 0xcd, 0x7c, 0x6b, - 0x6a, 0xe5, 0x82, 0x94, 0xe6, 0x2e, 0xd9, 0x7b, 0xc7, 0x4f, 0x19, 0xeb, 0xba, 0xe9, 0x6a, 0x02, - 0x5f, 0xfd, 0x2b, 0x82, 0x85, 0x8d, 0xae, 0xb3, 0x3b, 0x10, 0xe9, 0x79, 0x18, 0x28, 0xb9, 0xda, - 0xf3, 0xa9, 0xd5, 0x8e, 0xbf, 0x0a, 0x93, 0x6c, 0xaf, 0x4f, 0x78, 0xa2, 0x98, 0x5e, 0x69, 0x2d, - 0x4b, 0xf6, 0xee, 0xe5, 0x94, 0x90, 0x0f, 0xf6, 0xfa, 0x44, 0xe3, 0x54, 0xea, 0xaf, 0x10, 0x2c, - 0xee, 0x53, 0x61, 0x1c, 0x63, 0x5e, 0x82, 0x5a, 0xca, 0x9d, 0xc2, 0xae, 0x15, 0x6d, 0x26, 0xe9, - 0x4f, 0x8a, 0x2f, 0x42, 0xcc, 0xc5, 0x6d, 0xd3, 0xa0, 0xf5, 0x7c, 0x33, 0xdf, 0xca, 0x6b, 0xd5, - 0x58, 0x5a, 0x30, 0xa8, 0xfa, 0x29, 0x82, 0x05, 0x51, 0x5c, 0xac, 0xeb, 0x2e, 0x33, 0x8f, 0x3a, - 0x41, 0x5f, 0x84, 0xe9, 0x7e, 0x28, 0x87, 0xc0, 0x9b, 0xe4, 0x78, 0xd5, 0x08, 0xca, 0xa3, 0xf5, - 0x8f, 0x08, 0xe6, 0xfc, 0x5a, 0xe2, 0x24, 0xc9, 0xfc, 0x07, 0x04, 0xb3, 0x77, 0x74, 0x7a, 0x92, - 0x44, 0xfe, 0x53, 0x90, 0xca, 0x23, 0x99, 0x8f, 0x32, 0x45, 0xf9, 0x88, 0x49, 0xa1, 0xc3, 0xcd, - 0x6b, 0x3a, 0x21, 0x35, 0x55, 0xff, 0x3c, 0xc8, 0xf9, 0x27, 0x4c, 0xf2, 0xbf, 0x20, 0x38, 0x77, - 0x9b, 0xb0, 0x48, 0xea, 0x63, 0xb1, 0x37, 0x8c, 0x1a, 0x2d, 0x4f, 0xc5, 0xce, 0x26, 0x15, 0xfe, - 0x48, 0x76, 0x90, 0xdf, 0x23, 0x98, 0xf7, 0xd3, 0xef, 0xf1, 0x08, 0x82, 0x11, 0x6a, 0x4f, 0xf5, - 0x17, 0xc1, 0x9e, 0x17, 0x97, 0x78, 0x1c, 0xd3, 0x49, 0x02, 0x2f, 0x27, 0x0b, 0x3c, 0x5f, 0xb8, - 0x08, 0xb2, 0xb6, 0x1a, 0xee, 0x15, 0x09, 0x98, 0xfa, 0x23, 0x04, 0x0b, 0x61, 0xe5, 0xbb, 0x41, - 0xb6, 0x7a, 0xc4, 0x66, 0xcf, 0x6e, 0xcf, 0xb4, 0x35, 0x72, 0x92, 0x9a, 0xf5, 0x2c, 0x54, 0xa8, - 0x98, 0x27, 0x2a, 0x6a, 0x07, 0x00, 0xf5, 0x13, 0x04, 0x8b, 0xfb, 0xc4, 0x19, 0xc7, 0x58, 0x75, - 0x28, 0x99, 0xb6, 0x41, 0x1e, 0x47, 0xd2, 0x84, 0xbf, 0xfe, 0xc8, 0xa6, 0x67, 0x5a, 0x46, 0x24, - 0x46, 0xf8, 0x8b, 0x2f, 0x80, 0x42, 0x6c, 0x7d, 0xd3, 0x22, 0x6d, 0x8e, 0xcb, 0x9d, 0x5a, 0xd6, - 0xa6, 0x04, 0x6c, 0xcd, 0x07, 0xa9, 0x1f, 0x21, 0x98, 0xf5, 0x7d, 0x1a, 0xc8, 0x48, 0x9f, 0xaf, - 0xcd, 0x9a, 0x30, 0x15, 0x73, 0x5a, 0x20, 0x6e, 0x1c, 0xa4, 0x6e, 0xc3, 0x5c, 0x52, 0x9c, 0x71, - 0x6c, 0x76, 0x1e, 0x20, 0xf2, 0x88, 0x88, 0xad, 0xbc, 0x16, 0x83, 0xa8, 0xff, 0x45, 0x80, 0x45, - 0x79, 0xc1, 0x8d, 0x71, 0xc4, 0x87, 0xec, 0x47, 0x26, 0xb1, 0x8c, 0x78, 0x06, 0xab, 0x70, 0x08, - 0x1f, 0x5e, 0x05, 0x85, 0x3c, 0x66, 0xae, 0xde, 0xee, 0xeb, 0xae, 0xde, 0x13, 0x47, 0x9c, 0x91, - 0x92, 0xcd, 0x14, 0x27, 0x5b, 0xe7, 0x54, 0xea, 0xdf, 0xfc, 0xc2, 0x24, 0x08, 0xca, 0xe3, 0xae, - 0xf1, 0x39, 0x00, 0x1e, 0xb4, 0x62, 0xb8, 0x20, 0x86, 0x39, 0x84, 0xa7, 0xf3, 0x4f, 0x10, 0xd4, - 0xb8, 0x0a, 0x42, 0x9f, 0xbe, 0xcf, 0x36, 0x45, 0x83, 0x52, 0x34, 0x43, 0x96, 0xd0, 0x97, 0xa1, - 0x18, 0x18, 0x36, 0x3f, 0xaa, 0x61, 0x03, 0x82, 0x03, 0xd4, 0x50, 0x7f, 0x8d, 0x60, 0x3e, 0x65, - 0xf2, 0x71, 0x22, 0xfa, 0x01, 0x60, 0xa1, 0xa1, 0x31, 0x50, 0x3b, 0xdc, 0x7a, 0x2e, 0x4a, 0xeb, - 0xff, 0xb4, 0x91, 0xb4, 0x53, 0x66, 0x0a, 0x42, 0xd5, 0x7f, 0x22, 0x38, 0x7b, 0x9b, 0x30, 0x8e, - 0x7a, 0xc3, 0xcf, 0x1d, 0xeb, 0xae, 0xb3, 0xe5, 0x12, 0x4a, 0x4f, 0x6e, 0x7c, 0xfc, 0x54, 0xd4, - 0x2a, 0x32, 0x95, 0xc6, 0xb1, 0xff, 0x05, 0x50, 0xf8, 0x1c, 0xc4, 0x68, 0xbb, 0xce, 0x2e, 0x0d, - 0xe2, 0x68, 0x2a, 0x80, 0x69, 0xce, 0x2e, 0x0f, 0x08, 0xe6, 0x30, 0xdd, 0x12, 0x08, 0xc1, 0xc6, - 0xc0, 0x21, 0xfe, 0x30, 0x5f, 0x83, 0xa1, 0x60, 0x3e, 0x73, 0x72, 0x72, 0x6d, 0xfc, 0x01, 0x82, - 0xf9, 0x94, 0x2a, 0xe3, 0xd8, 0xf6, 0xba, 0xa8, 0xa4, 0x84, 0x32, 0xd3, 0x2b, 0x2f, 0x48, 0x69, - 0x62, 0x93, 0x09, 0x6c, 0xf5, 0x33, 0x04, 0x35, 0xff, 0xb4, 0x75, 0xc2, 0x13, 0xda, 0x6f, 0x72, - 0x50, 0x5d, 0xb3, 0x29, 0x71, 0xd9, 0xf1, 0x2f, 0xa6, 0xf1, 0x37, 0x60, 0x8a, 0x2b, 0x46, 0xdb, - 0x86, 0xce, 0xf4, 0x60, 0x37, 0x3a, 0x2f, 0xed, 0x0b, 0xde, 0xf2, 0xf1, 0x56, 0x75, 0xa6, 0x6b, - 0xc2, 0x3a, 0xd4, 0xff, 0xc6, 0x67, 0xa0, 0xd2, 0xd5, 0x69, 0xb7, 0xbd, 0x4d, 0xf6, 0x68, 0xbd, - 0xd8, 0xcc, 0xb7, 0xaa, 0x5a, 0xd9, 0x07, 0xdc, 0x25, 0x7b, 0x14, 0x9f, 0x86, 0xb2, 0xed, 0xf5, - 0xc4, 0xfa, 0x29, 0x35, 0x51, 0xab, 0xaa, 0x95, 0x6c, 0xaf, 0xc7, 0x57, 0xcf, 0xdf, 0x73, 0x30, - 0x7d, 0xcf, 0xf3, 0x4b, 0x77, 0xde, 0xd5, 0xf4, 0x2c, 0xf6, 0x6c, 0xb1, 0xb6, 0x04, 0x79, 0x51, - 0x12, 0xf8, 0x14, 0x75, 0xa9, 0xe0, 0x6b, 0xab, 0x54, 0xf3, 0x91, 0xf8, 0xcd, 0x81, 0xd7, 0xe9, - 0x04, 0x35, 0x54, 0x9e, 0x0b, 0x5b, 0xf1, 0x21, 0x3c, 0xe2, 0x7c, 0x55, 0x88, 0xeb, 0x46, 0x15, - 0x16, 0x57, 0x85, 0xb8, 0xae, 0x18, 0x54, 0x41, 0xd1, 0x3b, 0xdb, 0xb6, 0xb3, 0x6b, 0x11, 0x63, - 0x8b, 0x18, 0xdc, 0xed, 0x65, 0x2d, 0x01, 0x13, 0x81, 0xe1, 0x3b, 0xbe, 0xdd, 0xb1, 0x59, 0xbd, - 0x28, 0x12, 0x86, 0x80, 0xdc, 0xb4, 0x99, 0x3f, 0x6c, 0x10, 0x8b, 0x30, 0xc2, 0x87, 0x4b, 0x62, - 0x58, 0x40, 0x82, 0x61, 0xaf, 0x1f, 0x51, 0x97, 0xc5, 0xb0, 0x80, 0xf8, 0xc3, 0x67, 0x81, 0xf7, - 0x8b, 0x44, 0x03, 0xa9, 0x32, 0x68, 0x20, 0x71, 0x80, 0xba, 0x03, 0xb5, 0x75, 0x4b, 0xef, 0x90, - 0xae, 0x63, 0x19, 0xc4, 0xe5, 0x9b, 0x1b, 0xae, 0x41, 0x9e, 0xe9, 0x5b, 0xc1, 0xee, 0xe9, 0x7f, - 0xe2, 0x2f, 0x05, 0x6d, 0x26, 0xb1, 0x2e, 0x5f, 0x92, 0x6e, 0x33, 0x31, 0x36, 0x83, 0x16, 0x13, - 0x5e, 0x80, 0x22, 0x6f, 0xb6, 0x8b, 0x7d, 0x55, 0xd1, 0x82, 0x3f, 0xf5, 0x61, 0x62, 0xde, 0xdb, - 0xae, 0xe3, 0xf5, 0xf1, 0x1a, 0x28, 0xfd, 0x01, 0xcc, 0xf7, 0x66, 0xf6, 0xa6, 0x96, 0x16, 0x5a, - 0x4b, 0x90, 0xaa, 0x3f, 0xcb, 0x43, 0x75, 0x83, 0xe8, 0x6e, 0xa7, 0x7b, 0x12, 0xce, 0xd5, 0xbe, - 0xc5, 0x0d, 0x6a, 0x05, 0x29, 0xc1, 0xff, 0xc4, 0x97, 0xe1, 0x54, 0x4c, 0xa1, 0xf6, 0x96, 0x6f, - 0x20, 0x1e, 0x19, 0x8a, 0x56, 0xeb, 0xa7, 0x0d, 0xf7, 0x06, 0x94, 0x0d, 0x6a, 0xb5, 0xb9, 0x8b, - 0x4a, 0xdc, 0x45, 0x72, 0xfd, 0x56, 0xa9, 0xc5, 0x5d, 0x53, 0x32, 0xc4, 0x07, 0xbe, 0x05, 0x55, - 0xca, 0xad, 0x14, 0x56, 0x95, 0xe5, 0x51, 0x8b, 0x1f, 0x45, 0xd0, 0x89, 0xb2, 0x12, 0x5f, 0x82, - 0x1a, 0x73, 0xf5, 0x1d, 0x62, 0xb5, 0xd3, 0xa1, 0x36, 0x23, 0xe0, 0x0f, 0xa2, 0x80, 0xfb, 0x5d, - 0x0e, 0x66, 0x34, 0xc2, 0x5c, 0x93, 0xec, 0x90, 0x13, 0xe1, 0x9b, 0x25, 0xc8, 0x9b, 0x06, 0xe5, - 0xbe, 0x19, 0x9a, 0x28, 0x4c, 0x83, 0xe2, 0x17, 0xa1, 0xea, 0x78, 0xac, 0xef, 0xb1, 0xb6, 0xc8, - 0x74, 0x3c, 0xb1, 0x55, 0x34, 0x45, 0x00, 0x79, 0x22, 0x94, 0x1b, 0xab, 0x24, 0x37, 0xd6, 0xa7, - 0x28, 0x6e, 0x2c, 0x3f, 0xd9, 0xd1, 0x67, 0xce, 0x76, 0xbe, 0x12, 0xb9, 0x51, 0x94, 0x48, 0xa5, - 0xf6, 0xfc, 0x61, 0x53, 0xbb, 0x7a, 0x17, 0x26, 0xef, 0x98, 0x8c, 0x47, 0xb5, 0x9f, 0x62, 0x11, - 0x3f, 0x75, 0xf1, 0x44, 0x7a, 0x1a, 0xca, 0xae, 0xb3, 0x2b, 0xf8, 0xe6, 0x78, 0x3e, 0x28, 0xb9, - 0xce, 0x2e, 0xdf, 0x0f, 0xf8, 0xad, 0xad, 0xe3, 0x06, 0x89, 0x22, 0xa7, 0x05, 0x7f, 0xea, 0xbb, - 0x83, 0x85, 0x3c, 0x86, 0xfe, 0x18, 0x26, 0xbb, 0x66, 0xd0, 0xa2, 0x51, 0x34, 0xfe, 0xad, 0x7e, - 0x88, 0x40, 0xb9, 0x65, 0x79, 0xf4, 0x79, 0xa4, 0x08, 0x59, 0x23, 0x3c, 0x2f, 0x6d, 0x84, 0xab, - 0xff, 0x46, 0xa0, 0xbc, 0xed, 0x11, 0x77, 0xef, 0x28, 0x57, 0x03, 0x86, 0x49, 0xf2, 0xb8, 0xef, - 0x06, 0x7b, 0x3d, 0xff, 0xde, 0x1f, 0xcc, 0x05, 0x49, 0x30, 0x4b, 0x96, 0x51, 0x51, 0xda, 0x3a, - 0xfc, 0x70, 0xa0, 0xe6, 0x18, 0x7e, 0x4c, 0xc5, 0x66, 0xee, 0xd0, 0xb1, 0xf9, 0x0f, 0x04, 0xf3, - 0xeb, 0xc4, 0xa5, 0x26, 0x65, 0xc4, 0x66, 0x41, 0x93, 0x61, 0xcd, 0x7e, 0xe4, 0x24, 0xbb, 0x39, - 0x28, 0xd5, 0xcd, 0xf9, 0x7c, 0x7a, 0x1b, 0x89, 0xba, 0x46, 0xf4, 0xd7, 0xc2, 0xba, 0x26, 0xec, - 0x22, 0x8a, 0xba, 0x70, 0x3a, 0x23, 0x05, 0x07, 0xf2, 0x26, 0xaa, 0xdf, 0x1f, 0x8b, 0x9b, 0x31, - 0xa9, 0x52, 0xcf, 0x1e, 0x52, 0x0b, 0x10, 0xc4, 0x50, 0x2a, 0xa2, 0xbe, 0x00, 0xa9, 0xd0, 0xc9, - 0xb8, 0xaf, 0xfb, 0x39, 0x82, 0x66, 0xb6, 0x54, 0xe3, 0x1c, 0x12, 0xbe, 0x09, 0x05, 0xd3, 0x7e, - 0xe4, 0x84, 0x67, 0xde, 0x25, 0x79, 0x79, 0x20, 0x9d, 0x57, 0x10, 0xaa, 0xff, 0x41, 0x50, 0xe3, - 0xa1, 0x78, 0x04, 0xee, 0xef, 0x91, 0x5e, 0x9b, 0x9a, 0x4f, 0x48, 0xe8, 0xfe, 0x1e, 0xe9, 0x6d, - 0x98, 0x4f, 0x48, 0x22, 0x32, 0x0a, 0xc9, 0xc8, 0x48, 0x1e, 0x1b, 0x8a, 0x43, 0x7a, 0x1a, 0xa5, - 0x44, 0x4f, 0x43, 0x7d, 0x8a, 0xa0, 0x71, 0x9b, 0xb0, 0xb4, 0xaa, 0x47, 0x17, 0x14, 0x1f, 0x23, - 0x38, 0x23, 0x15, 0x68, 0x9c, 0x78, 0xf8, 0x4a, 0x32, 0x1e, 0xe4, 0xe5, 0xe2, 0xbe, 0x29, 0x83, - 0x50, 0x78, 0x0d, 0x94, 0x55, 0xaf, 0xd7, 0x8b, 0x72, 0xef, 0x05, 0x50, 0x5c, 0xf1, 0x29, 0xaa, - 0x29, 0x51, 0x03, 0x4f, 0x05, 0x30, 0xbf, 0x66, 0x52, 0x2f, 0x43, 0x35, 0x20, 0x09, 0xa4, 0x6e, - 0x40, 0xd9, 0x0d, 0xbe, 0x03, 0xfc, 0xe8, 0x5f, 0x9d, 0x87, 0x59, 0x8d, 0x6c, 0xf9, 0x91, 0xe8, - 0xbe, 0x65, 0xda, 0xdb, 0xc1, 0x34, 0xfe, 0xb9, 0x79, 0x2e, 0x09, 0x0f, 0x78, 0x7d, 0x11, 0x4a, - 0xba, 0x61, 0xb8, 0x84, 0xd2, 0xa1, 0x6e, 0x79, 0x53, 0xe0, 0x68, 0x21, 0x72, 0xcc, 0x72, 0xb9, - 0x91, 0x2d, 0xb7, 0x74, 0x45, 0x34, 0x7e, 0x53, 0x77, 0xc3, 0xb8, 0x04, 0xf9, 0x37, 0x2d, 0xab, - 0x36, 0x81, 0x15, 0x28, 0xaf, 0xd9, 0xf7, 0x48, 0xcf, 0x71, 0xf7, 0x6a, 0x68, 0xe9, 0xeb, 0x30, - 0x93, 0x2a, 0xf1, 0x71, 0x19, 0x26, 0xef, 0x3b, 0x36, 0xa9, 0x4d, 0xe0, 0x1a, 0x28, 0x37, 0x4c, - 0x5b, 0x77, 0xf7, 0xde, 0x21, 0x1d, 0xe6, 0xb8, 0x35, 0x03, 0xcf, 0xc0, 0xd4, 0x2d, 0xcb, 0xd1, - 0x59, 0x00, 0x20, 0x2b, 0x1f, 0x2d, 0x42, 0xf5, 0x1e, 0x17, 0x6a, 0x83, 0xb8, 0x3b, 0x66, 0x87, - 0xe0, 0x36, 0xd4, 0xd2, 0xef, 0xc6, 0xf0, 0x15, 0xa9, 0xfb, 0x32, 0x9e, 0x97, 0x35, 0x86, 0xa9, - 0xa9, 0x4e, 0xe0, 0xf7, 0x61, 0x3a, 0xf9, 0xa2, 0x0b, 0xcb, 0xb3, 0x85, 0xf4, 0xd9, 0xd7, 0x41, - 0xcc, 0xdb, 0x50, 0x4d, 0x3c, 0xd0, 0xc2, 0x97, 0xa4, 0xbc, 0x65, 0x8f, 0xb8, 0x1a, 0x17, 0xa4, - 0xa8, 0xf1, 0x47, 0x54, 0x42, 0xfa, 0xe4, 0x3b, 0x95, 0x0c, 0xe9, 0xa5, 0x8f, 0x59, 0x0e, 0x92, - 0x5e, 0x87, 0x53, 0xfb, 0x9e, 0x9d, 0xe0, 0x57, 0xa4, 0xfc, 0xb3, 0x9e, 0xa7, 0x1c, 0x34, 0xc5, - 0x2e, 0xe0, 0xfd, 0x0f, 0x91, 0xf0, 0xb2, 0xdc, 0x03, 0x59, 0xcf, 0xb0, 0x1a, 0x57, 0x47, 0xc6, - 0x8f, 0x0c, 0xf7, 0x7d, 0x04, 0x8b, 0x19, 0x6f, 0x45, 0xf0, 0x35, 0x29, 0xbb, 0xe1, 0x0f, 0x5e, - 0x1a, 0xaf, 0x1f, 0x8e, 0x28, 0x12, 0xc4, 0x86, 0x99, 0xd4, 0x02, 0xc3, 0x97, 0x47, 0x79, 0xa2, - 0x11, 0xce, 0x7b, 0x65, 0x34, 0xe4, 0x68, 0xbe, 0x87, 0x30, 0x93, 0x7a, 0x2b, 0x91, 0x31, 0x9f, - 0xfc, 0x45, 0xc5, 0x41, 0x0e, 0x7d, 0x0f, 0xaa, 0x89, 0x47, 0x0d, 0x19, 0x11, 0x2f, 0x7b, 0xf8, - 0x70, 0x10, 0xeb, 0x87, 0xa0, 0xc4, 0xdf, 0x1e, 0xe0, 0x56, 0xd6, 0x5a, 0xda, 0xc7, 0xf8, 0x30, - 0x4b, 0x69, 0x70, 0x6d, 0x39, 0x64, 0x29, 0xed, 0xbb, 0x8d, 0x1d, 0x7d, 0x29, 0xc5, 0xf8, 0x0f, - 0x5d, 0x4a, 0x87, 0x9e, 0xe2, 0x03, 0x04, 0x0b, 0xf2, 0xab, 0x6b, 0xbc, 0x92, 0x15, 0x9b, 0xd9, - 0x97, 0xf4, 0x8d, 0x6b, 0x87, 0xa2, 0x89, 0xac, 0xb8, 0x0d, 0xd3, 0xc9, 0xcb, 0xdf, 0x0c, 0x2b, - 0x4a, 0xef, 0xb4, 0x1b, 0x97, 0x47, 0xc2, 0x8d, 0x26, 0xfb, 0x36, 0x4c, 0xc5, 0x2e, 0xe6, 0xf0, - 0xcb, 0x43, 0xe2, 0x38, 0xde, 0xf7, 0x3d, 0xc8, 0x92, 0x5d, 0xa8, 0x26, 0x2e, 0x63, 0xb2, 0x62, - 0x58, 0x72, 0x47, 0xd6, 0x58, 0x1a, 0x05, 0x35, 0x52, 0xa0, 0x0b, 0xd5, 0x44, 0x6b, 0x3c, 0x63, - 0x26, 0xd9, 0x4d, 0x40, 0xc6, 0x4c, 0xd2, 0x4e, 0xbb, 0x3a, 0x81, 0xbf, 0x17, 0xeb, 0xc2, 0x27, - 0x6e, 0x3a, 0xf0, 0x6b, 0x43, 0xf9, 0xc8, 0x2e, 0x7a, 0x1a, 0x2b, 0x87, 0x21, 0x89, 0x44, 0x78, - 0x1b, 0x2a, 0x51, 0x07, 0x1e, 0x5f, 0xcc, 0x4c, 0x0b, 0x87, 0xf1, 0xd4, 0x06, 0x14, 0x45, 0x37, - 0x1c, 0xab, 0x19, 0xd7, 0x5a, 0xb1, 0x56, 0x79, 0xe3, 0x45, 0x29, 0x4e, 0xb2, 0x51, 0xac, 0x4e, - 0x60, 0x0d, 0x8a, 0xa2, 0x9b, 0x90, 0xc1, 0x34, 0xd1, 0x33, 0x6c, 0x0c, 0xc7, 0xe1, 0xc7, 0x58, - 0x75, 0x02, 0xbf, 0x0b, 0xe5, 0xb0, 0x47, 0x83, 0x5f, 0xca, 0x58, 0xf6, 0x89, 0x7e, 0x57, 0xe3, - 0x20, 0xac, 0x90, 0xf3, 0x1a, 0x14, 0x78, 0x83, 0x02, 0xcb, 0x93, 0x5c, 0xbc, 0x79, 0x71, 0x90, - 0x35, 0xbf, 0x05, 0x05, 0x5e, 0x03, 0x67, 0xb0, 0x8a, 0x37, 0x20, 0x1a, 0x43, 0x51, 0x42, 0xd9, - 0x7e, 0x80, 0xa0, 0x9e, 0x75, 0xc0, 0xc3, 0x99, 0x1b, 0xe6, 0xb0, 0x53, 0x6a, 0xe3, 0xfa, 0x21, - 0xa9, 0xa2, 0xe8, 0x7b, 0x02, 0xb3, 0x92, 0x63, 0x05, 0xbe, 0x9a, 0xc5, 0x2f, 0xe3, 0x44, 0xd4, - 0x78, 0x75, 0x74, 0x82, 0x68, 0xee, 0x75, 0x28, 0xf0, 0xe3, 0x40, 0x86, 0x61, 0xe3, 0xa7, 0x8b, - 0x8c, 0x78, 0x4a, 0x9c, 0x26, 0xd4, 0x09, 0x4c, 0x40, 0x89, 0x9f, 0x0d, 0x32, 0xf6, 0x42, 0xc9, - 0xb1, 0xa2, 0x71, 0x69, 0x04, 0xcc, 0x70, 0x9a, 0x15, 0x0f, 0x94, 0x75, 0xd7, 0x79, 0xbc, 0x17, - 0x56, 0xe3, 0xff, 0x9f, 0x69, 0x6f, 0x5c, 0xff, 0xce, 0xb5, 0x2d, 0x93, 0x75, 0xbd, 0x4d, 0x3f, - 0x44, 0xaf, 0x0a, 0xdc, 0x57, 0x4c, 0x27, 0xf8, 0xba, 0x6a, 0xda, 0x8c, 0xb8, 0xb6, 0x6e, 0x5d, - 0xe5, 0xbc, 0x02, 0x68, 0x7f, 0x73, 0xb3, 0xc8, 0xff, 0xaf, 0xfd, 0x2f, 0x00, 0x00, 0xff, 0xff, - 0x7b, 0xfb, 0x89, 0x65, 0xac, 0x32, 0x00, 0x00, + // 2536 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x3a, 0xcd, 0x6f, 0xdc, 0xc6, + 0xf5, 0x9a, 0x5d, 0xed, 0xd7, 0x13, 0x57, 0x5a, 0x8f, 0xbe, 0xd6, 0xeb, 0x8f, 0xac, 0x99, 0xf8, + 0x97, 0xb5, 0xec, 0xc8, 0x89, 0x1c, 0xff, 0xd2, 0xa2, 0x1f, 0x69, 0x6c, 0xc1, 0xb6, 0xe0, 0xd8, + 0x55, 0x28, 0x37, 0x68, 0x1a, 0x18, 0x0b, 0x6a, 0x39, 0xd6, 0x12, 0xe2, 0x92, 0x5b, 0xce, 0x50, + 0xb2, 0x7c, 0x2a, 0x90, 0xb4, 0x40, 0xd1, 0xc6, 0x39, 0xb4, 0x28, 0xd0, 0x1e, 0x8a, 0xa2, 0x45, + 0x0e, 0xed, 0xa5, 0x2d, 0x52, 0xa0, 0x40, 0xd1, 0x43, 0x0f, 0x39, 0xf4, 0x50, 0xa0, 0x45, 0xff, + 0x86, 0xf6, 0xd8, 0xff, 0xa1, 0xe0, 0x0c, 0xc9, 0x25, 0xa9, 0xe1, 0x6a, 0xe5, 0x8d, 0x2b, 0xe9, + 0x46, 0xbe, 0x79, 0x6f, 0xe6, 0x7d, 0xcf, 0x9b, 0x37, 0x03, 0x4a, 0xcf, 0xb4, 0x76, 0x3c, 0xba, + 0xdc, 0x77, 0x1d, 0xe6, 0xe0, 0xd9, 0xf8, 0xdf, 0xb2, 0xf8, 0x69, 0x28, 0x1d, 0xa7, 0xd7, 0x73, + 0x6c, 0x01, 0x6c, 0x28, 0xb4, 0xd3, 0x25, 0x3d, 0x5d, 0xfc, 0xa9, 0x9f, 0x21, 0x58, 0xbc, 0xe9, + 0x12, 0x9d, 0x91, 0x9b, 0x8e, 0x65, 0x91, 0x0e, 0x33, 0x1d, 0x5b, 0x23, 0xdf, 0xf6, 0x08, 0x65, + 0xf8, 0x55, 0x98, 0xdc, 0xd4, 0x29, 0xa9, 0xa3, 0x26, 0x6a, 0x4d, 0xad, 0x9c, 0x5d, 0x4e, 0xcc, + 0x1d, 0xcc, 0x79, 0x8f, 0x6e, 0xdd, 0xd0, 0x29, 0xd1, 0x38, 0x26, 0x5e, 0x84, 0x92, 0xb1, 0xd9, + 0xb6, 0xf5, 0x1e, 0xa9, 0xe7, 0x9a, 0xa8, 0x55, 0xd1, 0x8a, 0xc6, 0xe6, 0x7d, 0xbd, 0x47, 0xf0, + 0xcb, 0x30, 0xd3, 0x89, 0xe6, 0x17, 0x08, 0x79, 0x8e, 0x30, 0x3d, 0x00, 0x73, 0xc4, 0x05, 0x28, + 0x0a, 0xfe, 0xea, 0x93, 0x4d, 0xd4, 0x52, 0xb4, 0xe0, 0x0f, 0x9f, 0x03, 0xa0, 0x5d, 0xdd, 0x35, + 0x68, 0xdb, 0xf6, 0x7a, 0xf5, 0x42, 0x13, 0xb5, 0x0a, 0x5a, 0x45, 0x40, 0xee, 0x7b, 0x3d, 0xf5, + 0x07, 0x08, 0xe6, 0x57, 0x5d, 0xa7, 0x7f, 0x2c, 0x84, 0x50, 0x7f, 0x8d, 0x60, 0xee, 0x8e, 0x4e, + 0x8f, 0x87, 0x46, 0xcf, 0x01, 0x30, 0xb3, 0x47, 0xda, 0x94, 0xe9, 0xbd, 0x3e, 0xd7, 0xea, 0xa4, + 0x56, 0xf1, 0x21, 0x1b, 0x3e, 0x40, 0x7d, 0x0f, 0x94, 0x1b, 0x8e, 0x63, 0x69, 0x84, 0xf6, 0x1d, + 0x9b, 0x12, 0x7c, 0x0d, 0x8a, 0x94, 0xe9, 0xcc, 0xa3, 0x01, 0x93, 0x67, 0xa4, 0x4c, 0x6e, 0x70, + 0x14, 0x2d, 0x40, 0xc5, 0x73, 0x50, 0xd8, 0xd1, 0x2d, 0x4f, 0xf0, 0x58, 0xd6, 0xc4, 0x8f, 0xfa, + 0x3e, 0x4c, 0x6f, 0x30, 0xd7, 0xb4, 0xb7, 0x3e, 0xc7, 0xc9, 0x2b, 0xe1, 0xe4, 0xff, 0x44, 0x70, + 0x7a, 0x95, 0xd0, 0x8e, 0x6b, 0x6e, 0x1e, 0x13, 0xd7, 0x55, 0x41, 0x19, 0x40, 0xd6, 0x56, 0xb9, + 0xaa, 0xf3, 0x5a, 0x02, 0x96, 0x32, 0x46, 0x21, 0x6d, 0x8c, 0x9f, 0xe7, 0xa0, 0x21, 0x13, 0x6a, + 0x1c, 0xf5, 0x7d, 0x25, 0x8a, 0xa8, 0x1c, 0x27, 0xba, 0x98, 0x24, 0x0a, 0xb2, 0xc1, 0x60, 0xb5, + 0x0d, 0x0e, 0x88, 0x02, 0x2f, 0x2d, 0x55, 0x5e, 0x22, 0xd5, 0x0a, 0xcc, 0xef, 0x98, 0x2e, 0xf3, + 0x74, 0xab, 0xdd, 0xe9, 0xea, 0xb6, 0x4d, 0x2c, 0xae, 0x27, 0x5a, 0x9f, 0x6c, 0xe6, 0x5b, 0x15, + 0x6d, 0x36, 0x18, 0xbc, 0x29, 0xc6, 0x7c, 0x65, 0x51, 0xfc, 0x3a, 0x2c, 0xf4, 0xbb, 0x7b, 0xd4, + 0xec, 0xec, 0x23, 0x2a, 0x70, 0xa2, 0xb9, 0x70, 0x34, 0x4e, 0xc5, 0xe3, 0xfc, 0x6d, 0x47, 0x37, + 0x8e, 0x47, 0x9c, 0x3f, 0x45, 0x50, 0xd7, 0x88, 0x45, 0x74, 0x7a, 0x3c, 0x5c, 0x50, 0xfd, 0x31, + 0x82, 0xf3, 0xb7, 0x09, 0x8b, 0x19, 0x93, 0xe9, 0xcc, 0xa4, 0xcc, 0xec, 0xd0, 0xa3, 0x64, 0xeb, + 0x63, 0x04, 0x2f, 0x64, 0xb2, 0x35, 0x8e, 0x6f, 0xbf, 0x01, 0x05, 0xff, 0x8b, 0xd6, 0x73, 0xcd, + 0x7c, 0x6b, 0x6a, 0xe5, 0x82, 0x94, 0xe6, 0x2e, 0xd9, 0x7b, 0xd7, 0x4f, 0x19, 0xeb, 0xba, 0xe9, + 0x6a, 0x02, 0x5f, 0xfd, 0x0b, 0x82, 0x85, 0x8d, 0xae, 0xb3, 0x3b, 0x60, 0xe9, 0x79, 0x28, 0x28, + 0x19, 0xed, 0xf9, 0x54, 0xb4, 0xe3, 0x2f, 0xc3, 0x24, 0xdb, 0xeb, 0x13, 0x9e, 0x28, 0xa6, 0x57, + 0x5a, 0xcb, 0x92, 0xbd, 0x7b, 0x39, 0xc5, 0xe4, 0x83, 0xbd, 0x3e, 0xd1, 0x38, 0x95, 0xfa, 0x0b, + 0x04, 0x8b, 0xfb, 0x44, 0x18, 0x47, 0x99, 0x97, 0xa0, 0x96, 0x32, 0xa7, 0xd0, 0x6b, 0x45, 0x9b, + 0x49, 0xda, 0x93, 0xe2, 0x8b, 0x10, 0x33, 0x71, 0xdb, 0x34, 0x68, 0x3d, 0xdf, 0xcc, 0xb7, 0xf2, + 0x5a, 0x35, 0x96, 0x16, 0x0c, 0xaa, 0x7e, 0x8a, 0x60, 0x41, 0x14, 0x17, 0xeb, 0xba, 0xcb, 0xcc, + 0xa3, 0x4e, 0xd0, 0x17, 0x61, 0xba, 0x1f, 0xf2, 0x21, 0xf0, 0x26, 0x39, 0x5e, 0x35, 0x82, 0x72, + 0x6f, 0xfd, 0x3d, 0x82, 0x39, 0xbf, 0x96, 0x38, 0x49, 0x3c, 0xff, 0x0e, 0xc1, 0xec, 0x1d, 0x9d, + 0x9e, 0x24, 0x96, 0xff, 0x10, 0xa4, 0xf2, 0x88, 0xe7, 0xa3, 0x4c, 0x51, 0x3e, 0x62, 0x92, 0xe9, + 0x70, 0xf3, 0x9a, 0x4e, 0x70, 0x4d, 0xd5, 0x3f, 0x0e, 0x72, 0xfe, 0x09, 0xe3, 0xfc, 0x4f, 0x08, + 0xce, 0xdd, 0x26, 0x2c, 0xe2, 0xfa, 0x58, 0xec, 0x0d, 0xa3, 0x7a, 0xcb, 0x53, 0xb1, 0xb3, 0x49, + 0x99, 0x3f, 0x92, 0x1d, 0xe4, 0xb7, 0x08, 0xe6, 0xfd, 0xf4, 0x7b, 0x3c, 0x9c, 0x60, 0x84, 0xda, + 0x53, 0xfd, 0x59, 0xb0, 0xe7, 0xc5, 0x39, 0x1e, 0x47, 0x75, 0x12, 0xc7, 0xcb, 0xc9, 0x1c, 0xcf, + 0x67, 0x2e, 0x82, 0xac, 0xad, 0x86, 0x7b, 0x45, 0x02, 0xa6, 0xfe, 0x10, 0xc1, 0x42, 0x58, 0xf9, + 0x6e, 0x90, 0xad, 0x1e, 0xb1, 0xd9, 0xb3, 0xeb, 0x33, 0xad, 0x8d, 0x9c, 0xa4, 0x66, 0x3d, 0x0b, + 0x15, 0x2a, 0xd6, 0x89, 0x8a, 0xda, 0x01, 0x40, 0xfd, 0x04, 0xc1, 0xe2, 0x3e, 0x76, 0xc6, 0x51, + 0x56, 0x1d, 0x4a, 0xa6, 0x6d, 0x90, 0xc7, 0x11, 0x37, 0xe1, 0xaf, 0x3f, 0xb2, 0xe9, 0x99, 0x96, + 0x11, 0xb1, 0x11, 0xfe, 0xe2, 0x0b, 0xa0, 0x10, 0x5b, 0xdf, 0xb4, 0x48, 0x9b, 0xe3, 0x72, 0xa3, + 0x96, 0xb5, 0x29, 0x01, 0x5b, 0xf3, 0x41, 0xea, 0x47, 0x08, 0x66, 0x7d, 0x9b, 0x06, 0x3c, 0xd2, + 0xe7, 0xab, 0xb3, 0x26, 0x4c, 0xc5, 0x8c, 0x16, 0xb0, 0x1b, 0x07, 0xa9, 0xdb, 0x30, 0x97, 0x64, + 0x67, 0x1c, 0x9d, 0x9d, 0x07, 0x88, 0x2c, 0x22, 0x7c, 0x2b, 0xaf, 0xc5, 0x20, 0xea, 0x7f, 0x10, + 0x60, 0x51, 0x5e, 0x70, 0x65, 0x1c, 0xf1, 0x21, 0xfb, 0x91, 0x49, 0x2c, 0x23, 0x9e, 0xc1, 0x2a, + 0x1c, 0xc2, 0x87, 0x57, 0x41, 0x21, 0x8f, 0x99, 0xab, 0xb7, 0xfb, 0xba, 0xab, 0xf7, 0xc4, 0x11, + 0x67, 0xa4, 0x64, 0x33, 0xc5, 0xc9, 0xd6, 0x39, 0x95, 0xfa, 0x57, 0xbf, 0x30, 0x09, 0x9c, 0xf2, + 0xb8, 0x4b, 0x7c, 0x0e, 0x80, 0x3b, 0xad, 0x18, 0x2e, 0x88, 0x61, 0x0e, 0xe1, 0xe9, 0xfc, 0x13, + 0x04, 0x35, 0x2e, 0x82, 0x90, 0xa7, 0xef, 0x4f, 0x9b, 0xa2, 0x41, 0x29, 0x9a, 0x21, 0x21, 0xf4, + 0x45, 0x28, 0x06, 0x8a, 0xcd, 0x8f, 0xaa, 0xd8, 0x80, 0xe0, 0x00, 0x31, 0xd4, 0x5f, 0x22, 0x98, + 0x4f, 0xa9, 0x7c, 0x1c, 0x8f, 0x7e, 0x00, 0x58, 0x48, 0x68, 0x0c, 0xc4, 0x0e, 0xb7, 0x9e, 0x8b, + 0xd2, 0xfa, 0x3f, 0xad, 0x24, 0xed, 0x94, 0x99, 0x82, 0x50, 0xf5, 0x1f, 0x08, 0xce, 0xde, 0x26, + 0x8c, 0xa3, 0xde, 0xf0, 0x73, 0xc7, 0xba, 0xeb, 0x6c, 0xb9, 0x84, 0xd2, 0x93, 0xeb, 0x1f, 0x3f, + 0x11, 0xb5, 0x8a, 0x4c, 0xa4, 0x71, 0xf4, 0x7f, 0x01, 0x14, 0xbe, 0x06, 0x31, 0xda, 0xae, 0xb3, + 0x4b, 0x03, 0x3f, 0x9a, 0x0a, 0x60, 0x9a, 0xb3, 0xcb, 0x1d, 0x82, 0x39, 0x4c, 0xb7, 0x04, 0x42, + 0xb0, 0x31, 0x70, 0x88, 0x3f, 0xcc, 0x63, 0x30, 0x64, 0xcc, 0x9f, 0x9c, 0x9c, 0x5c, 0x1d, 0x7f, + 0x80, 0x60, 0x3e, 0x25, 0xca, 0x38, 0xba, 0xbd, 0x2e, 0x2a, 0x29, 0x21, 0xcc, 0xf4, 0xca, 0x0b, + 0x52, 0x9a, 0xd8, 0x62, 0x02, 0x5b, 0xfd, 0x0c, 0x41, 0xcd, 0x3f, 0x6d, 0x9d, 0xf0, 0x84, 0xf6, + 0xab, 0x1c, 0x54, 0xd7, 0x6c, 0x4a, 0x5c, 0x76, 0xfc, 0x8b, 0x69, 0xfc, 0x26, 0x4c, 0x71, 0xc1, + 0x68, 0xdb, 0xd0, 0x99, 0x1e, 0xec, 0x46, 0xe7, 0xa5, 0x7d, 0xc1, 0x5b, 0x3e, 0xde, 0xaa, 0xce, + 0x74, 0x4d, 0x68, 0x87, 0xfa, 0xdf, 0xf8, 0x0c, 0x54, 0xba, 0x3a, 0xed, 0xb6, 0xb7, 0xc9, 0x1e, + 0xad, 0x17, 0x9b, 0xf9, 0x56, 0x55, 0x2b, 0xfb, 0x80, 0xbb, 0x64, 0x8f, 0xe2, 0xd3, 0x50, 0xb6, + 0xbd, 0x9e, 0x88, 0x9f, 0x52, 0x13, 0xb5, 0xaa, 0x5a, 0xc9, 0xf6, 0x7a, 0x3c, 0x7a, 0xfe, 0x96, + 0x83, 0xe9, 0x7b, 0x9e, 0x5f, 0xba, 0xf3, 0xae, 0xa6, 0x67, 0xb1, 0x67, 0xf3, 0xb5, 0x25, 0xc8, + 0x8b, 0x92, 0xc0, 0xa7, 0xa8, 0x4b, 0x19, 0x5f, 0x5b, 0xa5, 0x9a, 0x8f, 0xc4, 0x6f, 0x0e, 0xbc, + 0x4e, 0x27, 0xa8, 0xa1, 0xf2, 0x9c, 0xd9, 0x8a, 0x0f, 0xe1, 0x1e, 0xe7, 0x8b, 0x42, 0x5c, 0x37, + 0xaa, 0xb0, 0xb8, 0x28, 0xc4, 0x75, 0xc5, 0xa0, 0x0a, 0x8a, 0xde, 0xd9, 0xb6, 0x9d, 0x5d, 0x8b, + 0x18, 0x5b, 0xc4, 0xe0, 0x66, 0x2f, 0x6b, 0x09, 0x98, 0x70, 0x0c, 0xdf, 0xf0, 0xed, 0x8e, 0xcd, + 0xea, 0x45, 0x91, 0x30, 0x04, 0xe4, 0xa6, 0xcd, 0xfc, 0x61, 0x83, 0x58, 0x84, 0x11, 0x3e, 0x5c, + 0x12, 0xc3, 0x02, 0x12, 0x0c, 0x7b, 0xfd, 0x88, 0xba, 0x2c, 0x86, 0x05, 0xc4, 0x1f, 0x3e, 0x0b, + 0xbc, 0x5f, 0x24, 0x1a, 0x48, 0x95, 0x41, 0x03, 0x89, 0x03, 0xd4, 0x1d, 0xa8, 0xad, 0x5b, 0x7a, + 0x87, 0x74, 0x1d, 0xcb, 0x20, 0x2e, 0xdf, 0xdc, 0x70, 0x0d, 0xf2, 0x4c, 0xdf, 0x0a, 0x76, 0x4f, + 0xff, 0x13, 0x7f, 0x21, 0x68, 0x33, 0x89, 0xb8, 0x7c, 0x49, 0xba, 0xcd, 0xc4, 0xa6, 0x19, 0xb4, + 0x98, 0xf0, 0x02, 0x14, 0x79, 0xb3, 0x5d, 0xec, 0xab, 0x8a, 0x16, 0xfc, 0xa9, 0x0f, 0x13, 0xeb, + 0xde, 0x76, 0x1d, 0xaf, 0x8f, 0xd7, 0x40, 0xe9, 0x0f, 0x60, 0xbe, 0x35, 0xb3, 0x37, 0xb5, 0x34, + 0xd3, 0x5a, 0x82, 0x54, 0xfd, 0x73, 0x1e, 0xaa, 0x1b, 0x44, 0x77, 0x3b, 0xdd, 0x93, 0x70, 0xae, + 0xf6, 0x35, 0x6e, 0x50, 0x2b, 0x48, 0x09, 0xfe, 0x27, 0xbe, 0x0c, 0xa7, 0x62, 0x02, 0xb5, 0xb7, + 0x7c, 0x05, 0x71, 0xcf, 0x50, 0xb4, 0x5a, 0x3f, 0xad, 0xb8, 0x37, 0xa0, 0x6c, 0x50, 0xab, 0xcd, + 0x4d, 0x54, 0xe2, 0x26, 0x92, 0xcb, 0xb7, 0x4a, 0x2d, 0x6e, 0x9a, 0x92, 0x21, 0x3e, 0xf0, 0x8b, + 0x50, 0x75, 0x3c, 0xd6, 0xf7, 0x58, 0x5b, 0x44, 0x66, 0xbd, 0xcc, 0xd9, 0x53, 0x04, 0x90, 0x07, + 0x2e, 0xc5, 0xb7, 0xa0, 0x4a, 0xb9, 0x2a, 0xc3, 0xd2, 0xb3, 0x32, 0x6a, 0x85, 0xa4, 0x08, 0x3a, + 0x51, 0x7b, 0xe2, 0x4b, 0x50, 0x63, 0xae, 0xbe, 0x43, 0xac, 0xf6, 0xc0, 0x1f, 0x81, 0xfb, 0xe3, + 0x8c, 0x80, 0x3f, 0x88, 0xbc, 0xf2, 0x37, 0x39, 0x98, 0xd1, 0x08, 0x73, 0x4d, 0xb2, 0x43, 0x4e, + 0x84, 0x01, 0x97, 0x20, 0x6f, 0x1a, 0x94, 0x1b, 0x70, 0x68, 0x36, 0x31, 0x0d, 0xba, 0x5f, 0xe9, + 0x45, 0x89, 0xd2, 0x65, 0xca, 0x2a, 0xc9, 0x95, 0xf5, 0x29, 0x8a, 0x2b, 0xcb, 0xcf, 0x88, 0xf4, + 0x99, 0x53, 0xa2, 0x2f, 0x44, 0x6e, 0x14, 0x21, 0x52, 0xf9, 0x3f, 0x7f, 0xd8, 0xfc, 0xaf, 0xde, + 0x85, 0xc9, 0x3b, 0x26, 0xe3, 0xae, 0xef, 0xe7, 0x61, 0xc4, 0x8f, 0x66, 0x3c, 0xdb, 0x9e, 0x86, + 0xb2, 0xeb, 0xec, 0x8a, 0x79, 0x73, 0x3c, 0x69, 0x94, 0x5c, 0x67, 0x97, 0x6f, 0x1a, 0xfc, 0x6a, + 0xd7, 0x71, 0x83, 0x6c, 0x92, 0xd3, 0x82, 0x3f, 0xf5, 0xbb, 0x68, 0x10, 0xee, 0x63, 0x28, 0xe0, + 0x4d, 0x28, 0xb9, 0x82, 0x7e, 0xe8, 0x45, 0x57, 0x7c, 0x25, 0x2e, 0x57, 0x48, 0xa5, 0x7e, 0x88, + 0x40, 0xb9, 0x65, 0x79, 0xf4, 0x79, 0x64, 0x1d, 0x59, 0x6f, 0x3d, 0x2f, 0xed, 0xad, 0xab, 0xff, + 0x42, 0xa0, 0xbc, 0xe3, 0x11, 0x77, 0xef, 0x28, 0x63, 0x07, 0xc3, 0x24, 0x79, 0xdc, 0x77, 0x83, + 0xf2, 0x81, 0x7f, 0xef, 0x77, 0xfd, 0x82, 0xc4, 0xf5, 0x25, 0x41, 0x57, 0x94, 0x76, 0x23, 0x3f, + 0x1c, 0x88, 0x39, 0x96, 0xd1, 0x13, 0x9e, 0x9c, 0x3b, 0xb4, 0x27, 0xff, 0x1d, 0xc1, 0xfc, 0x3a, + 0x71, 0xa9, 0x49, 0x19, 0xb1, 0x59, 0xd0, 0xb7, 0x58, 0xb3, 0x1f, 0x39, 0xc9, 0x06, 0x11, 0x4a, + 0x35, 0x88, 0x3e, 0x9f, 0x76, 0x49, 0xa2, 0x54, 0x12, 0x2d, 0xbb, 0xb0, 0x54, 0x0a, 0x1b, 0x93, + 0xa2, 0xd4, 0x9c, 0xce, 0x48, 0xd8, 0x01, 0xbf, 0x89, 0x82, 0xfa, 0x47, 0xe2, 0xb2, 0x4d, 0x2a, + 0xd4, 0xb3, 0xbb, 0xd4, 0x02, 0x04, 0x3e, 0x94, 0xf2, 0xa8, 0xff, 0x83, 0x94, 0xeb, 0x64, 0x5c, + 0x01, 0xfe, 0x14, 0x41, 0x33, 0x9b, 0xab, 0x71, 0xce, 0x1d, 0x5f, 0x83, 0x82, 0x69, 0x3f, 0x72, + 0xc2, 0x63, 0xf4, 0x92, 0xbc, 0xe2, 0x90, 0xae, 0x2b, 0x08, 0xd5, 0x7f, 0x23, 0xa8, 0x71, 0x57, + 0x3c, 0x02, 0xf3, 0xf7, 0x48, 0xaf, 0x4d, 0xcd, 0x27, 0x24, 0x34, 0x7f, 0x8f, 0xf4, 0x36, 0xcc, + 0x27, 0x24, 0xe1, 0x19, 0x85, 0xa4, 0x67, 0x24, 0x4f, 0x22, 0xc5, 0x21, 0x6d, 0x92, 0x52, 0xa2, + 0x4d, 0xa2, 0x3e, 0x45, 0xd0, 0xb8, 0x4d, 0x58, 0x5a, 0xd4, 0xa3, 0x73, 0x8a, 0x8f, 0x11, 0x9c, + 0x91, 0x32, 0x34, 0x8e, 0x3f, 0x7c, 0x29, 0xe9, 0x0f, 0xf2, 0x0a, 0x74, 0xdf, 0x92, 0x81, 0x2b, + 0xbc, 0x06, 0xca, 0xaa, 0xd7, 0xeb, 0x45, 0xb9, 0xf7, 0x02, 0x28, 0xae, 0xf8, 0x14, 0x05, 0x9a, + 0x28, 0xab, 0xa7, 0x02, 0x98, 0x5f, 0x86, 0xa9, 0x97, 0xa1, 0x1a, 0x90, 0x04, 0x5c, 0x37, 0xa0, + 0xec, 0x06, 0xdf, 0x01, 0x7e, 0xf4, 0xaf, 0xce, 0xc3, 0xac, 0x46, 0xb6, 0x7c, 0x4f, 0x74, 0xdf, + 0x36, 0xed, 0xed, 0x60, 0x19, 0xff, 0x28, 0x3e, 0x97, 0x84, 0x07, 0x73, 0xfd, 0x3f, 0x94, 0x74, + 0xc3, 0x70, 0x09, 0xa5, 0x43, 0xcd, 0xf2, 0x96, 0xc0, 0xd1, 0x42, 0xe4, 0x98, 0xe6, 0x72, 0x23, + 0x6b, 0x6e, 0xe9, 0x8a, 0xe8, 0x25, 0xa7, 0xae, 0x9b, 0x71, 0x09, 0xf2, 0x6f, 0x59, 0x56, 0x6d, + 0x02, 0x2b, 0x50, 0x5e, 0xb3, 0xef, 0x91, 0x9e, 0xe3, 0xee, 0xd5, 0xd0, 0xd2, 0x57, 0x61, 0x26, + 0x75, 0x6a, 0xc0, 0x65, 0x98, 0xbc, 0xef, 0xd8, 0xa4, 0x36, 0x81, 0x6b, 0xa0, 0xdc, 0x30, 0x6d, + 0xdd, 0xdd, 0x7b, 0x97, 0x74, 0x98, 0xe3, 0xd6, 0x0c, 0x3c, 0x03, 0x53, 0xb7, 0x2c, 0x47, 0x67, + 0x01, 0x80, 0xac, 0x7c, 0xb4, 0x08, 0xd5, 0x7b, 0x9c, 0xa9, 0x0d, 0xe2, 0xee, 0x98, 0x1d, 0x82, + 0xdb, 0x50, 0x4b, 0x3f, 0x45, 0xc3, 0x57, 0xa4, 0xe6, 0xcb, 0x78, 0xb1, 0xd6, 0x18, 0x26, 0xa6, + 0x3a, 0x81, 0xdf, 0x87, 0xe9, 0xe4, 0x23, 0x31, 0x2c, 0xcf, 0x16, 0xd2, 0x97, 0x64, 0x07, 0x4d, + 0xde, 0x86, 0x6a, 0xe2, 0xcd, 0x17, 0xbe, 0x24, 0x9d, 0x5b, 0xf6, 0x2e, 0xac, 0x71, 0x41, 0x8a, + 0x1a, 0x7f, 0x97, 0x25, 0xb8, 0x4f, 0x3e, 0x7d, 0xc9, 0xe0, 0x5e, 0xfa, 0x3e, 0xe6, 0x20, 0xee, + 0x75, 0x38, 0xb5, 0xef, 0x25, 0x0b, 0x7e, 0x45, 0x3a, 0x7f, 0xd6, 0x8b, 0x97, 0x83, 0x96, 0xd8, + 0x05, 0xbc, 0xff, 0x6d, 0x13, 0x5e, 0x96, 0x5b, 0x20, 0xeb, 0x65, 0x57, 0xe3, 0xea, 0xc8, 0xf8, + 0x91, 0xe2, 0xbe, 0x87, 0x60, 0x31, 0xe3, 0xf9, 0x09, 0xbe, 0x26, 0x9d, 0x6e, 0xf8, 0x1b, 0x9a, + 0xc6, 0xeb, 0x87, 0x23, 0x8a, 0x18, 0xb1, 0x61, 0x26, 0x15, 0x60, 0xf8, 0xf2, 0x28, 0xaf, 0x3e, + 0xc2, 0x75, 0xaf, 0x8c, 0x86, 0x1c, 0xad, 0xf7, 0x10, 0x66, 0x52, 0xcf, 0x2f, 0x32, 0xd6, 0x93, + 0x3f, 0xd2, 0x38, 0xc8, 0xa0, 0xef, 0x41, 0x35, 0xf1, 0x4e, 0x22, 0xc3, 0xe3, 0x65, 0x6f, 0x29, + 0x0e, 0x9a, 0xfa, 0x21, 0x28, 0xf1, 0xe7, 0x0c, 0xb8, 0x95, 0x15, 0x4b, 0xfb, 0x26, 0x3e, 0x4c, + 0x28, 0x0d, 0x6e, 0x42, 0x87, 0x84, 0xd2, 0xbe, 0x0b, 0xde, 0xd1, 0x43, 0x29, 0x36, 0xff, 0xd0, + 0x50, 0x3a, 0xf4, 0x12, 0x1f, 0x20, 0x58, 0x90, 0xdf, 0x86, 0xe3, 0x95, 0x2c, 0xdf, 0xcc, 0xbe, + 0xf7, 0x6f, 0x5c, 0x3b, 0x14, 0x4d, 0xa4, 0xc5, 0x6d, 0x98, 0x4e, 0xde, 0x27, 0x67, 0x68, 0x51, + 0x7a, 0x4d, 0xde, 0xb8, 0x3c, 0x12, 0x6e, 0xb4, 0xd8, 0x37, 0x60, 0x2a, 0x76, 0xd7, 0x87, 0x5f, + 0x1e, 0xe2, 0xc7, 0xf1, 0x56, 0xf2, 0x41, 0x9a, 0xec, 0x42, 0x35, 0x71, 0xbf, 0x93, 0xe5, 0xc3, + 0x92, 0x6b, 0xb7, 0xc6, 0xd2, 0x28, 0xa8, 0x91, 0x00, 0x5d, 0xa8, 0x26, 0xba, 0xed, 0x19, 0x2b, + 0xc9, 0x2e, 0x17, 0x32, 0x56, 0x92, 0x36, 0xef, 0xd5, 0x09, 0xfc, 0x9d, 0x58, 0x63, 0x3f, 0x71, + 0x79, 0x82, 0x5f, 0x1b, 0x3a, 0x8f, 0xec, 0xee, 0xa8, 0xb1, 0x72, 0x18, 0x92, 0x88, 0x85, 0x77, + 0xa0, 0x12, 0x35, 0xf5, 0xf1, 0xc5, 0xcc, 0xb4, 0x70, 0x18, 0x4b, 0x6d, 0x40, 0x51, 0x34, 0xd8, + 0xb1, 0x9a, 0x71, 0x53, 0x16, 0xeb, 0xbe, 0x37, 0x5e, 0x94, 0xe2, 0x24, 0x7b, 0xcf, 0xea, 0x04, + 0xd6, 0xa0, 0x28, 0x1a, 0x02, 0x19, 0x93, 0x26, 0xda, 0x90, 0x8d, 0xe1, 0x38, 0xa2, 0x8b, 0x30, + 0x81, 0xbf, 0x09, 0xe5, 0xb0, 0xa3, 0x83, 0x5f, 0xca, 0x08, 0xfb, 0x44, 0x77, 0xac, 0x71, 0x10, + 0x56, 0x38, 0xf3, 0x1a, 0x14, 0x78, 0x83, 0x02, 0xcb, 0x93, 0x5c, 0xbc, 0x79, 0x71, 0x90, 0x36, + 0xbf, 0x0e, 0x05, 0x5e, 0x03, 0x67, 0x4c, 0x15, 0x6f, 0x40, 0x34, 0x86, 0xa2, 0x84, 0xbc, 0x7d, + 0x1f, 0x41, 0x3d, 0xeb, 0x80, 0x87, 0x33, 0x37, 0xcc, 0x61, 0xa7, 0xd4, 0xc6, 0xf5, 0x43, 0x52, + 0x45, 0xde, 0xf7, 0x04, 0x66, 0x25, 0xc7, 0x0a, 0x7c, 0x35, 0x6b, 0xbe, 0x8c, 0x13, 0x51, 0xe3, + 0xd5, 0xd1, 0x09, 0xa2, 0xb5, 0xd7, 0xa1, 0xc0, 0x8f, 0x03, 0x19, 0x8a, 0x8d, 0x9f, 0x2e, 0x32, + 0xfc, 0x29, 0x71, 0x9a, 0x50, 0x27, 0x30, 0x01, 0x25, 0x7e, 0x36, 0xc8, 0xd8, 0x0b, 0x25, 0xc7, + 0x8a, 0xc6, 0xa5, 0x11, 0x30, 0xc3, 0x65, 0x56, 0x3c, 0x50, 0xd6, 0x5d, 0xe7, 0xf1, 0x5e, 0x58, + 0x8d, 0xff, 0x6f, 0x96, 0xbd, 0x71, 0xfd, 0x5b, 0xd7, 0xb6, 0x4c, 0xd6, 0xf5, 0x36, 0x7d, 0x17, + 0xbd, 0x2a, 0x70, 0x5f, 0x31, 0x9d, 0xe0, 0xeb, 0xaa, 0x69, 0x33, 0xe2, 0xda, 0xba, 0x75, 0x95, + 0xcf, 0x15, 0x40, 0xfb, 0x9b, 0x9b, 0x45, 0xfe, 0x7f, 0xed, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, + 0xe0, 0x93, 0x32, 0xfb, 0xff, 0x32, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/internal/proto/plan.proto b/internal/proto/plan.proto index 9a7bb460e0..b3fb4ee56e 100644 --- a/internal/proto/plan.proto +++ b/internal/proto/plan.proto @@ -87,4 +87,5 @@ message PlanNode { oneof node { VectorANNS vector_anns = 1; } + repeated int64 output_field_ids = 2; } diff --git a/internal/proto/planpb/plan.pb.go b/internal/proto/planpb/plan.pb.go index 9aa729ef2e..ed24b6c079 100644 --- a/internal/proto/planpb/plan.pb.go +++ b/internal/proto/planpb/plan.pb.go @@ -716,6 +716,7 @@ type PlanNode struct { // Types that are valid to be assigned to Node: // *PlanNode_VectorAnns Node isPlanNode_Node `protobuf_oneof:"node"` + OutputFieldIds []int64 `protobuf:"varint,2,rep,packed,name=output_field_ids,json=outputFieldIds,proto3" json:"output_field_ids,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -770,6 +771,13 @@ func (m *PlanNode) GetVectorAnns() *VectorANNS { return nil } +func (m *PlanNode) GetOutputFieldIds() []int64 { + if m != nil { + return m.OutputFieldIds + } + return nil +} + // XXX_OneofWrappers is for the internal use of the proto package. func (*PlanNode) XXX_OneofWrappers() []interface{} { return []interface{}{ @@ -796,60 +804,61 @@ func init() { func init() { proto.RegisterFile("plan.proto", fileDescriptor_2d655ab2f7683c23) } var fileDescriptor_2d655ab2f7683c23 = []byte{ - // 872 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0x4d, 0x6f, 0x1b, 0x37, - 0x13, 0xd6, 0xee, 0xea, 0x63, 0x77, 0xa4, 0x28, 0x7a, 0x79, 0x79, 0xd5, 0xba, 0x81, 0x85, 0x4d, - 0xd0, 0x0a, 0x28, 0x22, 0xa3, 0x4a, 0xea, 0x00, 0x29, 0x52, 0xd4, 0x6e, 0x82, 0xd8, 0x68, 0x20, - 0xbb, 0x5b, 0xd5, 0x87, 0x5e, 0x16, 0xd4, 0x2e, 0x25, 0x11, 0xa1, 0x48, 0x9a, 0x4b, 0x09, 0xd1, - 0xb9, 0xb7, 0xde, 0xfa, 0x27, 0x7a, 0xe9, 0x1f, 0xea, 0xbd, 0x7f, 0xa4, 0x20, 0xb9, 0x96, 0xac, - 0x42, 0x76, 0x51, 0xa0, 0x37, 0xce, 0xf7, 0xf3, 0xcc, 0x0c, 0x07, 0x40, 0x32, 0xcc, 0x07, 0x52, - 0x09, 0x2d, 0xd0, 0xff, 0x16, 0x94, 0xad, 0x96, 0x85, 0x93, 0x06, 0xc6, 0xf0, 0x71, 0xab, 0xc8, - 0xe6, 0x64, 0x81, 0x9d, 0x2a, 0x96, 0xd0, 0x7a, 0x4b, 0x38, 0x51, 0x34, 0xbb, 0xc2, 0x6c, 0x49, - 0xd0, 0x01, 0x84, 0x13, 0x21, 0x58, 0xba, 0xc2, 0xac, 0xeb, 0xf5, 0xbc, 0x7e, 0x78, 0x56, 0x49, - 0x1a, 0x46, 0x73, 0x85, 0x19, 0x7a, 0x04, 0x11, 0xe5, 0xfa, 0xf8, 0xb9, 0xb5, 0xfa, 0x3d, 0xaf, - 0x1f, 0x9c, 0x55, 0x92, 0xd0, 0xaa, 0x4a, 0xf3, 0x94, 0x09, 0xac, 0xad, 0x39, 0xe8, 0x79, 0x7d, - 0xcf, 0x98, 0xad, 0xea, 0x0a, 0xb3, 0xd3, 0x1a, 0x04, 0x2b, 0xcc, 0x62, 0x02, 0xd1, 0xf7, 0x4b, - 0xa2, 0xd6, 0xe7, 0x7c, 0x2a, 0x10, 0x82, 0xaa, 0x16, 0xf2, 0xbd, 0x2d, 0x15, 0x24, 0xf6, 0x8d, - 0x0e, 0xa1, 0xb9, 0x20, 0x5a, 0xd1, 0x2c, 0xd5, 0x6b, 0x49, 0x6c, 0xa2, 0x28, 0x01, 0xa7, 0x1a, - 0xaf, 0x25, 0x41, 0x8f, 0xe1, 0x41, 0x41, 0xb0, 0xca, 0xe6, 0xa9, 0xc4, 0x0a, 0x2f, 0x8a, 0x6e, - 0xd5, 0xba, 0xb4, 0x9c, 0xf2, 0xd2, 0xea, 0xe2, 0xdf, 0x3c, 0x80, 0x6f, 0x05, 0x5b, 0x2e, 0xb8, - 0x2d, 0xf4, 0x11, 0x84, 0x53, 0x4a, 0x58, 0x9e, 0xd2, 0xbc, 0x2c, 0xd6, 0xb0, 0xf2, 0x79, 0x8e, - 0x5e, 0x42, 0x94, 0x63, 0x8d, 0x5d, 0x35, 0xc3, 0xaa, 0x3d, 0x7c, 0x34, 0xd8, 0xe9, 0x5b, 0xd9, - 0xb1, 0xd7, 0x58, 0x63, 0x03, 0x20, 0x09, 0xf3, 0xf2, 0x85, 0x9e, 0x40, 0x9b, 0x16, 0xa9, 0x54, - 0x74, 0x81, 0xd5, 0x3a, 0x7d, 0x4f, 0xd6, 0x16, 0x6e, 0x98, 0xb4, 0x68, 0x71, 0xe9, 0x94, 0xdf, - 0x91, 0x35, 0x3a, 0x80, 0x88, 0x16, 0x29, 0x5e, 0x6a, 0x71, 0xfe, 0xda, 0x82, 0x0d, 0x93, 0x90, - 0x16, 0x27, 0x56, 0x8e, 0x7f, 0xf7, 0x21, 0x4a, 0x30, 0x9f, 0x91, 0x37, 0x1f, 0xa4, 0x42, 0x5f, - 0x43, 0x33, 0xb3, 0xa8, 0x53, 0xca, 0xa7, 0xc2, 0x42, 0x6d, 0xfe, 0x1d, 0x8e, 0x9d, 0xef, 0x96, - 0x5b, 0x02, 0xd9, 0x96, 0xe7, 0x97, 0x10, 0x08, 0x59, 0x74, 0xfd, 0x5e, 0xd0, 0x6f, 0x0f, 0x1f, - 0xef, 0x89, 0xdb, 0x94, 0x1a, 0x5c, 0x48, 0x4b, 0xc6, 0xf8, 0xa3, 0x17, 0x50, 0x5f, 0x99, 0xf9, - 0x17, 0xdd, 0xa0, 0x17, 0xf4, 0x9b, 0xc3, 0xc3, 0x3d, 0x91, 0xb7, 0xf7, 0x24, 0x29, 0xdd, 0x63, - 0x0e, 0x75, 0x97, 0x07, 0x35, 0xa1, 0x71, 0xce, 0x57, 0x98, 0xd1, 0xbc, 0x53, 0x41, 0x0f, 0xa1, - 0xf9, 0x56, 0x11, 0xac, 0x89, 0x1a, 0xcf, 0x31, 0xef, 0x78, 0xa8, 0x03, 0xad, 0x52, 0xf1, 0xe6, - 0x7a, 0x89, 0x59, 0xc7, 0x47, 0x2d, 0x08, 0xdf, 0x91, 0xa2, 0xb0, 0xf6, 0x00, 0x3d, 0x80, 0xc8, - 0x48, 0xce, 0x58, 0x45, 0x11, 0xd4, 0xdc, 0xb3, 0x66, 0xfc, 0x46, 0x42, 0x3b, 0xa9, 0x1e, 0xff, - 0xec, 0x41, 0x38, 0x26, 0x6a, 0xf1, 0x9f, 0x34, 0x6b, 0xcb, 0xda, 0xff, 0x77, 0xac, 0x7f, 0xf5, - 0x20, 0xfa, 0x91, 0x63, 0xb5, 0xb6, 0x30, 0x9e, 0x83, 0x2f, 0xa4, 0xad, 0xde, 0x1e, 0x3e, 0xd9, - 0x93, 0x62, 0xe3, 0xe9, 0x5e, 0x17, 0x32, 0xf1, 0x85, 0x44, 0x4f, 0xa1, 0x96, 0xcd, 0x29, 0xcb, - 0xed, 0xca, 0x35, 0x87, 0xff, 0xdf, 0x13, 0x68, 0x62, 0x12, 0xe7, 0x15, 0x1f, 0x42, 0xa3, 0x8c, - 0xde, 0xed, 0x74, 0x03, 0x82, 0x91, 0xd0, 0x1d, 0x2f, 0xfe, 0xc3, 0x03, 0x38, 0xa5, 0x1b, 0x50, - 0xc7, 0xb7, 0x40, 0x7d, 0xba, 0x27, 0xf7, 0xd6, 0xb5, 0x7c, 0x96, 0xb0, 0x3e, 0x87, 0x2a, 0x23, - 0x53, 0xfd, 0x4f, 0xa8, 0xac, 0x93, 0xe1, 0xa0, 0xe8, 0x6c, 0xae, 0xed, 0xd6, 0xdf, 0xc7, 0xc1, - 0x7a, 0xc5, 0xc7, 0x10, 0xde, 0xd4, 0xda, 0x25, 0xd1, 0x06, 0x78, 0x27, 0x66, 0x34, 0xc3, 0xec, - 0x84, 0xe7, 0x1d, 0xcf, 0x6e, 0x83, 0x93, 0x2f, 0x54, 0xc7, 0x8f, 0x7f, 0xf1, 0xa1, 0x6a, 0x49, - 0xbd, 0x02, 0x50, 0x66, 0x7f, 0x53, 0xf2, 0x41, 0xaa, 0x72, 0xde, 0x9f, 0xdc, 0xb7, 0xe4, 0x67, - 0x95, 0x24, 0x52, 0x9b, 0xcf, 0xf5, 0x12, 0x22, 0x4d, 0xd4, 0xc2, 0x45, 0x3b, 0x82, 0x07, 0x7b, - 0xa2, 0x6f, 0xf6, 0xcb, 0x5c, 0x2f, 0x7d, 0xb3, 0x6b, 0xaf, 0x00, 0x96, 0x06, 0xba, 0x0b, 0x0e, - 0xee, 0x2c, 0xbd, 0x19, 0xb6, 0x29, 0xbd, 0xdc, 0x8c, 0xe3, 0x1b, 0x68, 0x4e, 0xe8, 0x36, 0xbe, - 0x7a, 0xe7, 0xaa, 0x6e, 0xe7, 0x72, 0x56, 0x49, 0x60, 0xb2, 0x91, 0x4e, 0xeb, 0x50, 0x35, 0xa1, - 0xf1, 0x9f, 0x1e, 0xc0, 0x15, 0xc9, 0xb4, 0x50, 0x27, 0xa3, 0xd1, 0x0f, 0xe5, 0x6d, 0x71, 0x7e, - 0xee, 0x62, 0x9b, 0xdb, 0xe2, 0xb2, 0xec, 0x5c, 0x3d, 0x7f, 0xf7, 0xea, 0xbd, 0x00, 0x90, 0x8a, - 0xe4, 0x34, 0xc3, 0xda, 0xfe, 0xfa, 0x7b, 0xe7, 0x77, 0xcb, 0x15, 0x7d, 0x05, 0x70, 0x6d, 0xee, - 0xb7, 0xfb, 0x73, 0xd5, 0x3b, 0x1b, 0xb1, 0x39, 0xf2, 0x49, 0x74, 0xbd, 0xb9, 0xf7, 0x9f, 0xc1, - 0x43, 0xc9, 0x70, 0x46, 0xe6, 0x82, 0xe5, 0x44, 0xa5, 0x1a, 0xcf, 0xba, 0x35, 0x7b, 0xbc, 0xdb, - 0xb7, 0xd4, 0x63, 0x3c, 0x8b, 0xc7, 0x10, 0x5e, 0x32, 0xcc, 0x47, 0x22, 0x27, 0xa6, 0x77, 0x2b, - 0x4b, 0x38, 0xc5, 0x9c, 0x17, 0xf7, 0x7c, 0xf3, 0x6d, 0x5b, 0x4c, 0xef, 0x5c, 0xcc, 0x09, 0xe7, - 0x85, 0xe9, 0x1d, 0x17, 0x39, 0x39, 0x7d, 0xf6, 0xd3, 0x17, 0x33, 0xaa, 0xe7, 0xcb, 0xc9, 0x20, - 0x13, 0x8b, 0x23, 0x97, 0xe0, 0x29, 0x15, 0xe5, 0xeb, 0x88, 0x72, 0x4d, 0x14, 0xc7, 0xec, 0xc8, - 0xe6, 0x3c, 0x32, 0x39, 0xe5, 0x64, 0x52, 0xb7, 0xd2, 0xb3, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, - 0x11, 0x2c, 0xa8, 0xdc, 0x58, 0x07, 0x00, 0x00, + // 893 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0x4f, 0x6f, 0x1b, 0x45, + 0x14, 0xcf, 0xee, 0x3a, 0xf6, 0xee, 0xb3, 0xeb, 0x9a, 0xb9, 0x60, 0x08, 0x55, 0xac, 0x6d, 0x05, + 0x96, 0x50, 0x1d, 0xe1, 0x96, 0x54, 0x2a, 0x2a, 0x22, 0xa1, 0xa5, 0x89, 0xa8, 0x9c, 0xb0, 0x84, + 0x1c, 0xb8, 0xac, 0xc6, 0xbb, 0x63, 0x7b, 0xd4, 0xf1, 0xcc, 0x64, 0x76, 0xd6, 0xaa, 0x2f, 0x5c, + 0xb8, 0x71, 0xe3, 0x4b, 0x70, 0xe1, 0x0b, 0x71, 0xe7, 0x8b, 0xa0, 0x99, 0xd9, 0xd8, 0x31, 0x72, + 0x82, 0x90, 0x7a, 0x7b, 0x7f, 0xe7, 0xfd, 0x7e, 0xef, 0xbd, 0x79, 0x00, 0x92, 0x61, 0x3e, 0x90, + 0x4a, 0x68, 0x81, 0x3e, 0x98, 0x53, 0xb6, 0x28, 0x0b, 0xa7, 0x0d, 0x8c, 0xe3, 0xe3, 0x56, 0x91, + 0xcd, 0xc8, 0x1c, 0x3b, 0x53, 0x2c, 0xa1, 0xf5, 0x9a, 0x70, 0xa2, 0x68, 0x76, 0x89, 0x59, 0x49, + 0xd0, 0x1e, 0x84, 0x63, 0x21, 0x58, 0xba, 0xc0, 0xac, 0xeb, 0xf5, 0xbc, 0x7e, 0x78, 0xb2, 0x93, + 0x34, 0x8c, 0xe5, 0x12, 0x33, 0xf4, 0x00, 0x22, 0xca, 0xf5, 0xe1, 0x53, 0xeb, 0xf5, 0x7b, 0x5e, + 0x3f, 0x38, 0xd9, 0x49, 0x42, 0x6b, 0xaa, 0xdc, 0x13, 0x26, 0xb0, 0xb6, 0xee, 0xa0, 0xe7, 0xf5, + 0x3d, 0xe3, 0xb6, 0xa6, 0x4b, 0xcc, 0x8e, 0x77, 0x21, 0x58, 0x60, 0x16, 0x13, 0x88, 0x7e, 0x28, + 0x89, 0x5a, 0x9e, 0xf2, 0x89, 0x40, 0x08, 0x6a, 0x5a, 0xc8, 0xb7, 0xb6, 0x54, 0x90, 0x58, 0x19, + 0xed, 0x43, 0x73, 0x4e, 0xb4, 0xa2, 0x59, 0xaa, 0x97, 0x92, 0xd8, 0x87, 0xa2, 0x04, 0x9c, 0xe9, + 0x62, 0x29, 0x09, 0x7a, 0x08, 0xf7, 0x0a, 0x82, 0x55, 0x36, 0x4b, 0x25, 0x56, 0x78, 0x5e, 0x74, + 0x6b, 0x36, 0xa4, 0xe5, 0x8c, 0xe7, 0xd6, 0x16, 0xff, 0xe1, 0x01, 0x7c, 0x2b, 0x58, 0x39, 0xe7, + 0xb6, 0xd0, 0x47, 0x10, 0x4e, 0x28, 0x61, 0x79, 0x4a, 0xf3, 0xaa, 0x58, 0xc3, 0xea, 0xa7, 0x39, + 0x7a, 0x0e, 0x51, 0x8e, 0x35, 0x76, 0xd5, 0x0c, 0xab, 0xf6, 0xf0, 0xc1, 0x60, 0xa3, 0x6f, 0x55, + 0xc7, 0x5e, 0x62, 0x8d, 0x0d, 0x80, 0x24, 0xcc, 0x2b, 0x09, 0x3d, 0x82, 0x36, 0x2d, 0x52, 0xa9, + 0xe8, 0x1c, 0xab, 0x65, 0xfa, 0x96, 0x2c, 0x2d, 0xdc, 0x30, 0x69, 0xd1, 0xe2, 0xdc, 0x19, 0xbf, + 0x27, 0x4b, 0xb4, 0x07, 0x11, 0x2d, 0x52, 0x5c, 0x6a, 0x71, 0xfa, 0xd2, 0x82, 0x0d, 0x93, 0x90, + 0x16, 0x47, 0x56, 0x8f, 0xff, 0xf4, 0x21, 0x4a, 0x30, 0x9f, 0x92, 0x57, 0xef, 0xa4, 0x42, 0x5f, + 0x43, 0x33, 0xb3, 0xa8, 0x53, 0xca, 0x27, 0xc2, 0x42, 0x6d, 0xfe, 0x1b, 0x8e, 0x9d, 0xef, 0x9a, + 0x5b, 0x02, 0xd9, 0x9a, 0xe7, 0x97, 0x10, 0x08, 0x59, 0x74, 0xfd, 0x5e, 0xd0, 0x6f, 0x0f, 0x1f, + 0x6e, 0xc9, 0x5b, 0x95, 0x1a, 0x9c, 0x49, 0x4b, 0xc6, 0xc4, 0xa3, 0x67, 0x50, 0x5f, 0x98, 0xf9, + 0x17, 0xdd, 0xa0, 0x17, 0xf4, 0x9b, 0xc3, 0xfd, 0x2d, 0x99, 0x37, 0xf7, 0x24, 0xa9, 0xc2, 0x63, + 0x0e, 0x75, 0xf7, 0x0e, 0x6a, 0x42, 0xe3, 0x94, 0x2f, 0x30, 0xa3, 0x79, 0x67, 0x07, 0xdd, 0x87, + 0xe6, 0x6b, 0x45, 0xb0, 0x26, 0xea, 0x62, 0x86, 0x79, 0xc7, 0x43, 0x1d, 0x68, 0x55, 0x86, 0x57, + 0x57, 0x25, 0x66, 0x1d, 0x1f, 0xb5, 0x20, 0x7c, 0x43, 0x8a, 0xc2, 0xfa, 0x03, 0x74, 0x0f, 0x22, + 0xa3, 0x39, 0x67, 0x0d, 0x45, 0xb0, 0xeb, 0xc4, 0x5d, 0x13, 0x37, 0x12, 0xda, 0x69, 0xf5, 0xf8, + 0x57, 0x0f, 0xc2, 0x0b, 0xa2, 0xe6, 0xef, 0xa5, 0x59, 0x6b, 0xd6, 0xfe, 0xff, 0x63, 0xfd, 0xbb, + 0x07, 0xd1, 0x4f, 0x1c, 0xab, 0xa5, 0x85, 0xf1, 0x14, 0x7c, 0x21, 0x6d, 0xf5, 0xf6, 0xf0, 0xd1, + 0x96, 0x27, 0x56, 0x91, 0x4e, 0x3a, 0x93, 0x89, 0x2f, 0x24, 0x7a, 0x0c, 0xbb, 0xd9, 0x8c, 0xb2, + 0xdc, 0xae, 0x5c, 0x73, 0xf8, 0xe1, 0x96, 0x44, 0x93, 0x93, 0xb8, 0xa8, 0x78, 0x1f, 0x1a, 0x55, + 0xf6, 0x66, 0xa7, 0x1b, 0x10, 0x8c, 0x84, 0xee, 0x78, 0xf1, 0x5f, 0x1e, 0xc0, 0x31, 0x5d, 0x81, + 0x3a, 0xbc, 0x01, 0xea, 0xd3, 0x2d, 0x6f, 0xaf, 0x43, 0x2b, 0xb1, 0x82, 0xf5, 0x39, 0xd4, 0x18, + 0x99, 0xe8, 0xff, 0x42, 0x65, 0x83, 0x0c, 0x07, 0x45, 0xa7, 0x33, 0x6d, 0xb7, 0xfe, 0x2e, 0x0e, + 0x36, 0x2a, 0x3e, 0x84, 0xf0, 0xba, 0xd6, 0x26, 0x89, 0x36, 0xc0, 0x1b, 0x31, 0xa5, 0x19, 0x66, + 0x47, 0x3c, 0xef, 0x78, 0x76, 0x1b, 0x9c, 0x7e, 0xa6, 0x3a, 0x7e, 0xfc, 0x9b, 0x0f, 0x35, 0x4b, + 0xea, 0x05, 0x80, 0x32, 0xfb, 0x9b, 0x92, 0x77, 0x52, 0x55, 0xf3, 0xfe, 0xe4, 0xae, 0x25, 0x3f, + 0xd9, 0x49, 0x22, 0xb5, 0xfa, 0x5c, 0xcf, 0x21, 0xd2, 0x44, 0xcd, 0x5d, 0xb6, 0x23, 0xb8, 0xb7, + 0x25, 0xfb, 0x7a, 0xbf, 0xcc, 0xf5, 0xd2, 0xd7, 0xbb, 0xf6, 0x02, 0xa0, 0x34, 0xd0, 0x5d, 0x72, + 0x70, 0x6b, 0xe9, 0xd5, 0xb0, 0x4d, 0xe9, 0x72, 0x35, 0x8e, 0x6f, 0xa0, 0x39, 0xa6, 0xeb, 0xfc, + 0xda, 0xad, 0xab, 0xba, 0x9e, 0xcb, 0xc9, 0x4e, 0x02, 0xe3, 0x95, 0x76, 0x5c, 0x87, 0x9a, 0x49, + 0x8d, 0xff, 0xf6, 0x00, 0x2e, 0x49, 0xa6, 0x85, 0x3a, 0x1a, 0x8d, 0x7e, 0xac, 0x6e, 0x8b, 0x8b, + 0x73, 0x17, 0xdb, 0xdc, 0x16, 0xf7, 0xca, 0xc6, 0xd5, 0xf3, 0x37, 0xaf, 0xde, 0x33, 0x00, 0xa9, + 0x48, 0x4e, 0x33, 0xac, 0xed, 0xaf, 0xbf, 0x73, 0x7e, 0x37, 0x42, 0xd1, 0x57, 0x00, 0x57, 0xe6, + 0x7e, 0xbb, 0x3f, 0x57, 0xbb, 0xb5, 0x11, 0xab, 0x23, 0x9f, 0x44, 0x57, 0xab, 0x7b, 0xff, 0x19, + 0xdc, 0x97, 0x0c, 0x67, 0x64, 0x26, 0x58, 0x4e, 0x54, 0xaa, 0xf1, 0xb4, 0xbb, 0x6b, 0x8f, 0x77, + 0xfb, 0x86, 0xf9, 0x02, 0x4f, 0xe3, 0x5f, 0x20, 0x3c, 0x67, 0x98, 0x8f, 0x44, 0x4e, 0x4c, 0xef, + 0x16, 0x96, 0x70, 0x8a, 0x39, 0x2f, 0xee, 0xf8, 0xe6, 0xeb, 0xb6, 0x98, 0xde, 0xb9, 0x9c, 0x23, + 0xce, 0x0b, 0xd4, 0x87, 0x8e, 0x28, 0xb5, 0x2c, 0x75, 0x7a, 0xdd, 0x0e, 0xf7, 0xe5, 0x83, 0xa4, + 0xed, 0xec, 0xdf, 0xb9, 0xae, 0x14, 0xa6, 0xcb, 0x5c, 0xe4, 0xe4, 0xf8, 0xc9, 0xcf, 0x5f, 0x4c, + 0xa9, 0x9e, 0x95, 0xe3, 0x41, 0x26, 0xe6, 0x07, 0xae, 0xd4, 0x63, 0x2a, 0x2a, 0xe9, 0x80, 0x72, + 0x4d, 0x14, 0xc7, 0xec, 0xc0, 0x56, 0x3f, 0x30, 0xd5, 0xe5, 0x78, 0x5c, 0xb7, 0xda, 0x93, 0x7f, + 0x02, 0x00, 0x00, 0xff, 0xff, 0xd5, 0x7c, 0x0d, 0xc8, 0x82, 0x07, 0x00, 0x00, } diff --git a/internal/proto/schema.proto b/internal/proto/schema.proto index efadae5186..c4b1d00972 100644 --- a/internal/proto/schema.proto +++ b/internal/proto/schema.proto @@ -113,3 +113,11 @@ message IDs { StringArray str_id = 2; } } + +message SearchResultData { + int64 num_queries = 1; + int64 top_k = 2; + repeated FieldData fields_data = 3; + repeated float scores = 4; + IDs ids = 5; +} diff --git a/internal/proto/schemapb/schema.pb.go b/internal/proto/schemapb/schema.pb.go index 46530ad0a0..3ac0663a48 100644 --- a/internal/proto/schemapb/schema.pb.go +++ b/internal/proto/schemapb/schema.pb.go @@ -930,6 +930,77 @@ func (*IDs) XXX_OneofWrappers() []interface{} { } } +type SearchResultData struct { + NumQueries int64 `protobuf:"varint,1,opt,name=num_queries,json=numQueries,proto3" json:"num_queries,omitempty"` + TopK int64 `protobuf:"varint,2,opt,name=top_k,json=topK,proto3" json:"top_k,omitempty"` + FieldsData []*FieldData `protobuf:"bytes,3,rep,name=fields_data,json=fieldsData,proto3" json:"fields_data,omitempty"` + Scores []float32 `protobuf:"fixed32,4,rep,packed,name=scores,proto3" json:"scores,omitempty"` + Ids *IDs `protobuf:"bytes,5,opt,name=ids,proto3" json:"ids,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SearchResultData) Reset() { *m = SearchResultData{} } +func (m *SearchResultData) String() string { return proto.CompactTextString(m) } +func (*SearchResultData) ProtoMessage() {} +func (*SearchResultData) Descriptor() ([]byte, []int) { + return fileDescriptor_1c5fb4d8cc22d66a, []int{13} +} + +func (m *SearchResultData) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SearchResultData.Unmarshal(m, b) +} +func (m *SearchResultData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SearchResultData.Marshal(b, m, deterministic) +} +func (m *SearchResultData) XXX_Merge(src proto.Message) { + xxx_messageInfo_SearchResultData.Merge(m, src) +} +func (m *SearchResultData) XXX_Size() int { + return xxx_messageInfo_SearchResultData.Size(m) +} +func (m *SearchResultData) XXX_DiscardUnknown() { + xxx_messageInfo_SearchResultData.DiscardUnknown(m) +} + +var xxx_messageInfo_SearchResultData proto.InternalMessageInfo + +func (m *SearchResultData) GetNumQueries() int64 { + if m != nil { + return m.NumQueries + } + return 0 +} + +func (m *SearchResultData) GetTopK() int64 { + if m != nil { + return m.TopK + } + return 0 +} + +func (m *SearchResultData) GetFieldsData() []*FieldData { + if m != nil { + return m.FieldsData + } + return nil +} + +func (m *SearchResultData) GetScores() []float32 { + if m != nil { + return m.Scores + } + return nil +} + +func (m *SearchResultData) GetIds() *IDs { + if m != nil { + return m.Ids + } + return nil +} + func init() { proto.RegisterEnum("milvus.proto.schema.DataType", DataType_name, DataType_value) proto.RegisterType((*FieldSchema)(nil), "milvus.proto.schema.FieldSchema") @@ -945,63 +1016,70 @@ func init() { proto.RegisterType((*VectorField)(nil), "milvus.proto.schema.VectorField") proto.RegisterType((*FieldData)(nil), "milvus.proto.schema.FieldData") proto.RegisterType((*IDs)(nil), "milvus.proto.schema.IDs") + proto.RegisterType((*SearchResultData)(nil), "milvus.proto.schema.SearchResultData") } func init() { proto.RegisterFile("schema.proto", fileDescriptor_1c5fb4d8cc22d66a) } var fileDescriptor_1c5fb4d8cc22d66a = []byte{ - // 847 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0x41, 0x8f, 0xdb, 0x44, - 0x14, 0xce, 0xc4, 0x89, 0x63, 0x3f, 0x87, 0x62, 0x0d, 0x08, 0x59, 0x48, 0xed, 0xba, 0x11, 0x48, - 0x11, 0x12, 0xbb, 0xea, 0x2e, 0x94, 0x52, 0x51, 0x09, 0xd2, 0x68, 0x95, 0xa8, 0xa8, 0x5a, 0x79, - 0x51, 0x0f, 0x5c, 0xa2, 0x49, 0x3c, 0xdd, 0x8e, 0x70, 0x66, 0x22, 0x7b, 0xb2, 0xc2, 0x3f, 0x80, - 0x33, 0x17, 0x4e, 0xfc, 0x37, 0x0e, 0xf0, 0x4b, 0xd0, 0xbc, 0x99, 0x6c, 0x0c, 0x71, 0x57, 0xb9, - 0xbd, 0x19, 0xbf, 0xef, 0x9b, 0xf7, 0xbe, 0xf7, 0xcd, 0x18, 0x86, 0xd5, 0xea, 0x1d, 0x5f, 0xb3, - 0xd3, 0x4d, 0xa9, 0xb4, 0xa2, 0x1f, 0xad, 0x45, 0x71, 0xbb, 0xad, 0xec, 0xea, 0xd4, 0x7e, 0xfa, - 0x74, 0xb8, 0x52, 0xeb, 0xb5, 0x92, 0x76, 0x73, 0xf4, 0x77, 0x17, 0xa2, 0x4b, 0xc1, 0x8b, 0xfc, - 0x1a, 0xbf, 0xd2, 0x04, 0x06, 0x6f, 0xcd, 0x72, 0x3e, 0x4d, 0x48, 0x4a, 0xc6, 0x5e, 0xb6, 0x5b, - 0x52, 0x0a, 0x3d, 0xc9, 0xd6, 0x3c, 0xe9, 0xa6, 0x64, 0x1c, 0x66, 0x18, 0xd3, 0xcf, 0xe0, 0x81, - 0xa8, 0x16, 0x9b, 0x52, 0xac, 0x59, 0x59, 0x2f, 0x7e, 0xe1, 0x75, 0xe2, 0xa5, 0x64, 0x1c, 0x64, - 0x43, 0x51, 0x5d, 0xd9, 0xcd, 0x57, 0xbc, 0xa6, 0x29, 0x44, 0x39, 0xaf, 0x56, 0xa5, 0xd8, 0x68, - 0xa1, 0x64, 0xd2, 0x43, 0x82, 0xe6, 0x16, 0x7d, 0x0e, 0x61, 0xce, 0x34, 0x5b, 0xe8, 0x7a, 0xc3, - 0x93, 0x7e, 0x4a, 0xc6, 0x0f, 0xce, 0x1f, 0x9e, 0xb6, 0x14, 0x7f, 0x3a, 0x65, 0x9a, 0xfd, 0x54, - 0x6f, 0x78, 0x16, 0xe4, 0x2e, 0xa2, 0x13, 0x88, 0x0c, 0x6c, 0xb1, 0x61, 0x25, 0x5b, 0x57, 0x89, - 0x9f, 0x7a, 0xe3, 0xe8, 0xfc, 0xf1, 0x7f, 0xd1, 0xae, 0xe5, 0x57, 0xbc, 0x7e, 0xc3, 0x8a, 0x2d, - 0xbf, 0x62, 0xa2, 0xcc, 0xc0, 0xa0, 0xae, 0x10, 0x44, 0xa7, 0x30, 0x14, 0x32, 0xe7, 0xbf, 0xee, - 0x48, 0x06, 0xc7, 0x92, 0x44, 0x08, 0x73, 0x2c, 0x9f, 0x80, 0xcf, 0xb6, 0x5a, 0xcd, 0xa7, 0x49, - 0x80, 0x2a, 0xb8, 0xd5, 0xe8, 0x4f, 0x02, 0xf1, 0x4b, 0x55, 0x14, 0x7c, 0x65, 0x9a, 0x75, 0x42, - 0xef, 0xe4, 0x24, 0x0d, 0x39, 0xff, 0x27, 0x54, 0xf7, 0x50, 0xa8, 0xfd, 0x11, 0x5e, 0xf3, 0x08, - 0xfa, 0x0c, 0x7c, 0x9c, 0x53, 0x95, 0xf4, 0xb0, 0xf4, 0xb4, 0x55, 0xbd, 0xc6, 0xa0, 0x33, 0x97, - 0x3f, 0x3a, 0x81, 0x70, 0xa2, 0x54, 0xf1, 0x43, 0x59, 0xb2, 0xda, 0x14, 0x65, 0x74, 0x4d, 0x48, - 0xea, 0x8d, 0x83, 0x0c, 0xe3, 0xd1, 0x23, 0x08, 0xe6, 0x52, 0x1f, 0x7e, 0xef, 0xbb, 0xef, 0x27, - 0x10, 0xfe, 0xa8, 0xe4, 0xcd, 0x61, 0x82, 0xe7, 0x12, 0x52, 0x80, 0xcb, 0x42, 0xb1, 0x16, 0x8a, - 0xae, 0xcb, 0x78, 0x0c, 0xd1, 0x54, 0x6d, 0x97, 0x05, 0x3f, 0x4c, 0x21, 0x7b, 0x92, 0x49, 0xad, - 0x79, 0x75, 0x98, 0x31, 0xdc, 0x93, 0x5c, 0xeb, 0x52, 0xb4, 0x55, 0x12, 0xba, 0x94, 0xbf, 0x3c, - 0x88, 0xae, 0x57, 0xac, 0x60, 0x25, 0x2a, 0x41, 0x5f, 0x40, 0xb8, 0x54, 0xaa, 0x58, 0xb8, 0x44, - 0x32, 0x8e, 0xce, 0x1f, 0xb5, 0x0a, 0x77, 0xa7, 0xd0, 0xac, 0x93, 0x05, 0x06, 0x62, 0x7c, 0x48, - 0x9f, 0x43, 0x20, 0xa4, 0xb6, 0xe8, 0x2e, 0xa2, 0xdb, 0x4d, 0xbb, 0x93, 0x6f, 0xd6, 0xc9, 0x06, - 0x42, 0x6a, 0xc4, 0xbe, 0x80, 0xb0, 0x50, 0xf2, 0xc6, 0x82, 0xbd, 0x7b, 0x8e, 0xbe, 0xd3, 0xd6, - 0x1c, 0x6d, 0x20, 0x08, 0xff, 0x1e, 0xe0, 0xad, 0xd1, 0xd4, 0xe2, 0x7b, 0x88, 0x3f, 0x69, 0x9f, - 0xf9, 0x9d, 0xf4, 0xb3, 0x4e, 0x16, 0x22, 0x08, 0x19, 0x5e, 0x42, 0x94, 0xa3, 0xe6, 0x96, 0xa2, - 0x8f, 0x14, 0xed, 0xb6, 0x69, 0xcc, 0x66, 0xd6, 0xc9, 0xc0, 0xc2, 0x76, 0x24, 0x15, 0x6a, 0x6e, - 0x49, 0xfc, 0x7b, 0x48, 0x1a, 0xb3, 0x31, 0x24, 0x16, 0xb6, 0xeb, 0x65, 0x69, 0x46, 0x6b, 0x39, - 0x06, 0xf7, 0xf4, 0xb2, 0x77, 0x80, 0xe9, 0x05, 0x41, 0x86, 0x61, 0xe2, 0xdb, 0x59, 0x8f, 0xfe, - 0x20, 0x10, 0xbd, 0xe1, 0x2b, 0xad, 0xdc, 0x7c, 0x63, 0xf0, 0x72, 0xb1, 0x76, 0x0f, 0x99, 0x09, - 0xcd, 0x45, 0xb7, 0xba, 0xdd, 0x62, 0x9a, 0x1b, 0xdb, 0x11, 0xca, 0x45, 0x08, 0xb3, 0xe4, 0xf4, - 0x73, 0xf8, 0x60, 0x29, 0xa4, 0x79, 0xf2, 0x1c, 0x8d, 0x19, 0xe0, 0x70, 0xd6, 0xc9, 0x86, 0x76, - 0xdb, 0xa6, 0xdd, 0x95, 0xf5, 0x0f, 0x81, 0x10, 0x0b, 0xc2, 0x76, 0x9f, 0x40, 0x0f, 0x9f, 0x39, - 0x72, 0xcc, 0x33, 0x87, 0xa9, 0xf4, 0x21, 0x00, 0xde, 0xd6, 0x45, 0xe3, 0x01, 0x0e, 0x71, 0xe7, - 0xb5, 0x79, 0x36, 0xbe, 0x83, 0x41, 0x85, 0xae, 0xae, 0x9c, 0x93, 0xde, 0x33, 0x81, 0xbd, 0xf3, - 0x8d, 0x13, 0x1d, 0xc4, 0xa0, 0x6d, 0x17, 0x95, 0xf3, 0x51, 0x3b, 0xba, 0xa1, 0xab, 0x41, 0x3b, - 0xc8, 0x64, 0x00, 0x7d, 0x2c, 0x64, 0xf4, 0x1b, 0x01, 0x6f, 0x3e, 0xad, 0xe8, 0x37, 0xe0, 0x9b, - 0x4b, 0x21, 0xf2, 0x7b, 0x2f, 0x54, 0xd3, 0xd5, 0x7d, 0x21, 0xf5, 0x3c, 0xa7, 0xdf, 0x82, 0x5f, - 0xe9, 0xd2, 0x00, 0xbb, 0x47, 0xdb, 0xa8, 0x5f, 0xe9, 0x72, 0x9e, 0x4f, 0x00, 0x02, 0x91, 0x2f, - 0xb0, 0x8e, 0x2f, 0x7e, 0x27, 0x10, 0xec, 0xe4, 0xa3, 0x01, 0xf4, 0x5e, 0x2b, 0xc9, 0xe3, 0x8e, - 0x89, 0xcc, 0x25, 0x8e, 0x89, 0x89, 0xe6, 0x52, 0x3f, 0x8b, 0xbb, 0x34, 0x84, 0xfe, 0x5c, 0xea, - 0x27, 0x4f, 0x63, 0xcf, 0x85, 0x17, 0xe7, 0x71, 0xcf, 0x85, 0x4f, 0xbf, 0x8a, 0xfb, 0x26, 0x44, - 0x13, 0xc4, 0x40, 0x01, 0x7c, 0x7b, 0x0d, 0xe2, 0xc8, 0xc4, 0xb6, 0x8c, 0xf8, 0x63, 0x1a, 0xc3, - 0x70, 0xd2, 0x98, 0x79, 0x9c, 0xd3, 0x0f, 0x21, 0xba, 0xdc, 0x7b, 0x25, 0xe6, 0x93, 0xaf, 0x7f, - 0xbe, 0xb8, 0x11, 0xfa, 0xdd, 0x76, 0x69, 0xfe, 0x20, 0x67, 0xb6, 0xa9, 0x2f, 0x85, 0x72, 0xd1, - 0x99, 0x90, 0x9a, 0x97, 0x92, 0x15, 0x67, 0xd8, 0xe7, 0x99, 0xed, 0x73, 0xb3, 0x5c, 0xfa, 0xb8, - 0xbe, 0xf8, 0x37, 0x00, 0x00, 0xff, 0xff, 0x43, 0x24, 0x9b, 0xd6, 0xd3, 0x07, 0x00, 0x00, + // 942 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0xdf, 0x8e, 0xdb, 0xc4, + 0x17, 0x8e, 0xe3, 0xc4, 0xb1, 0x8f, 0xf3, 0xeb, 0xcf, 0x9a, 0x22, 0x64, 0x21, 0xb5, 0xeb, 0x46, + 0x20, 0x45, 0x95, 0xd8, 0x55, 0x77, 0xa1, 0x94, 0x8a, 0x0a, 0x48, 0xa3, 0x55, 0xa2, 0x45, 0xd5, + 0xe2, 0x45, 0xbd, 0xe0, 0xc6, 0x9a, 0xc4, 0xd3, 0xdd, 0x51, 0xed, 0x19, 0xe3, 0x19, 0x57, 0xe4, + 0x01, 0xb8, 0xe6, 0x86, 0x2b, 0xde, 0x89, 0x47, 0xe0, 0x02, 0x9e, 0x04, 0xcd, 0x9f, 0x24, 0x86, + 0xb8, 0xab, 0xbd, 0x3b, 0x33, 0x3e, 0xdf, 0x37, 0x73, 0xbe, 0xf3, 0xcd, 0x31, 0x8c, 0xc5, 0xfa, + 0x86, 0x94, 0xf8, 0xb8, 0xaa, 0xb9, 0xe4, 0xe8, 0x7e, 0x49, 0x8b, 0x77, 0x8d, 0x30, 0xab, 0x63, + 0xf3, 0xe9, 0xa3, 0xf1, 0x9a, 0x97, 0x25, 0x67, 0x66, 0x73, 0xf2, 0x57, 0x1f, 0xc2, 0x73, 0x4a, + 0x8a, 0xfc, 0x4a, 0x7f, 0x45, 0x31, 0x8c, 0xde, 0xa8, 0xe5, 0x72, 0x1e, 0x3b, 0x89, 0x33, 0x75, + 0xd3, 0xed, 0x12, 0x21, 0x18, 0x30, 0x5c, 0x92, 0xb8, 0x9f, 0x38, 0xd3, 0x20, 0xd5, 0x31, 0xfa, + 0x18, 0xee, 0x51, 0x91, 0x55, 0x35, 0x2d, 0x71, 0xbd, 0xc9, 0xde, 0x92, 0x4d, 0xec, 0x26, 0xce, + 0xd4, 0x4f, 0xc7, 0x54, 0x5c, 0x9a, 0xcd, 0x0b, 0xb2, 0x41, 0x09, 0x84, 0x39, 0x11, 0xeb, 0x9a, + 0x56, 0x92, 0x72, 0x16, 0x0f, 0x34, 0x41, 0x7b, 0x0b, 0x3d, 0x87, 0x20, 0xc7, 0x12, 0x67, 0x72, + 0x53, 0x91, 0x78, 0x98, 0x38, 0xd3, 0x7b, 0xa7, 0x0f, 0x8e, 0x3b, 0x2e, 0x7f, 0x3c, 0xc7, 0x12, + 0xff, 0xb0, 0xa9, 0x48, 0xea, 0xe7, 0x36, 0x42, 0x33, 0x08, 0x15, 0x2c, 0xab, 0x70, 0x8d, 0x4b, + 0x11, 0x7b, 0x89, 0x3b, 0x0d, 0x4f, 0x1f, 0xfd, 0x1b, 0x6d, 0x4b, 0xbe, 0x20, 0x9b, 0xd7, 0xb8, + 0x68, 0xc8, 0x25, 0xa6, 0x75, 0x0a, 0x0a, 0x75, 0xa9, 0x41, 0x68, 0x0e, 0x63, 0xca, 0x72, 0xf2, + 0xf3, 0x96, 0x64, 0x74, 0x57, 0x92, 0x50, 0xc3, 0x2c, 0xcb, 0x87, 0xe0, 0xe1, 0x46, 0xf2, 0xe5, + 0x3c, 0xf6, 0xb5, 0x0a, 0x76, 0x35, 0xf9, 0xdd, 0x81, 0xe8, 0x25, 0x2f, 0x0a, 0xb2, 0x56, 0xc5, + 0x5a, 0xa1, 0xb7, 0x72, 0x3a, 0x2d, 0x39, 0xff, 0x23, 0x54, 0xff, 0x50, 0xa8, 0xfd, 0x11, 0x6e, + 0xfb, 0x08, 0xf4, 0x0c, 0x3c, 0xdd, 0x27, 0x11, 0x0f, 0xf4, 0xd5, 0x93, 0x4e, 0xf5, 0x5a, 0x8d, + 0x4e, 0x6d, 0xfe, 0xe4, 0x08, 0x82, 0x19, 0xe7, 0xc5, 0xb7, 0x75, 0x8d, 0x37, 0xea, 0x52, 0x4a, + 0xd7, 0xd8, 0x49, 0xdc, 0xa9, 0x9f, 0xea, 0x78, 0xf2, 0x10, 0xfc, 0x25, 0x93, 0x87, 0xdf, 0x87, + 0xf6, 0xfb, 0x11, 0x04, 0xdf, 0x71, 0x76, 0x7d, 0x98, 0xe0, 0xda, 0x84, 0x04, 0xe0, 0xbc, 0xe0, + 0xb8, 0x83, 0xa2, 0x6f, 0x33, 0x1e, 0x41, 0x38, 0xe7, 0xcd, 0xaa, 0x20, 0x87, 0x29, 0xce, 0x9e, + 0x64, 0xb6, 0x91, 0x44, 0x1c, 0x66, 0x8c, 0xf7, 0x24, 0x57, 0xb2, 0xa6, 0x5d, 0x37, 0x09, 0x6c, + 0xca, 0x9f, 0x2e, 0x84, 0x57, 0x6b, 0x5c, 0xe0, 0x5a, 0x2b, 0x81, 0x5e, 0x40, 0xb0, 0xe2, 0xbc, + 0xc8, 0x6c, 0xa2, 0x33, 0x0d, 0x4f, 0x1f, 0x76, 0x0a, 0xb7, 0x53, 0x68, 0xd1, 0x4b, 0x7d, 0x05, + 0x51, 0x3e, 0x44, 0xcf, 0xc1, 0xa7, 0x4c, 0x1a, 0x74, 0x5f, 0xa3, 0xbb, 0x4d, 0xbb, 0x95, 0x6f, + 0xd1, 0x4b, 0x47, 0x94, 0x49, 0x8d, 0x7d, 0x01, 0x41, 0xc1, 0xd9, 0xb5, 0x01, 0xbb, 0xb7, 0x1c, + 0xbd, 0xd3, 0x56, 0x1d, 0xad, 0x20, 0x1a, 0xfe, 0x0d, 0xc0, 0x1b, 0xa5, 0xa9, 0xc1, 0x0f, 0x34, + 0xfe, 0xa8, 0xbb, 0xe7, 0x3b, 0xe9, 0x17, 0xbd, 0x34, 0xd0, 0x20, 0xcd, 0xf0, 0x12, 0xc2, 0x5c, + 0x6b, 0x6e, 0x28, 0x86, 0x9a, 0xa2, 0xdb, 0x36, 0xad, 0xde, 0x2c, 0x7a, 0x29, 0x18, 0xd8, 0x96, + 0x44, 0x68, 0xcd, 0x0d, 0x89, 0x77, 0x0b, 0x49, 0xab, 0x37, 0x8a, 0xc4, 0xc0, 0xb6, 0xb5, 0xac, + 0x54, 0x6b, 0x0d, 0xc7, 0xe8, 0x96, 0x5a, 0xf6, 0x0e, 0x50, 0xb5, 0x68, 0x90, 0x62, 0x98, 0x79, + 0xa6, 0xd7, 0x93, 0xdf, 0x1c, 0x08, 0x5f, 0x93, 0xb5, 0xe4, 0xb6, 0xbf, 0x11, 0xb8, 0x39, 0x2d, + 0xed, 0x20, 0x53, 0xa1, 0x7a, 0xe8, 0x46, 0xb7, 0x77, 0x3a, 0xcd, 0xb6, 0xed, 0x0e, 0xca, 0x85, + 0x1a, 0x66, 0xc8, 0xd1, 0x27, 0xf0, 0xbf, 0x15, 0x65, 0x6a, 0xe4, 0x59, 0x1a, 0xd5, 0xc0, 0xf1, + 0xa2, 0x97, 0x8e, 0xcd, 0xb6, 0x49, 0xdb, 0x5d, 0xeb, 0x6f, 0x07, 0x02, 0x7d, 0x21, 0x5d, 0xee, + 0x13, 0x18, 0xe8, 0x31, 0xe7, 0xdc, 0x65, 0xcc, 0xe9, 0x54, 0xf4, 0x00, 0x40, 0xbf, 0xd6, 0xac, + 0x35, 0x80, 0x03, 0xbd, 0xf3, 0x4a, 0x8d, 0x8d, 0xaf, 0x60, 0x24, 0xb4, 0xab, 0x85, 0x75, 0xd2, + 0x7b, 0x3a, 0xb0, 0x77, 0xbe, 0x72, 0xa2, 0x85, 0x28, 0xb4, 0xa9, 0x42, 0x58, 0x1f, 0x75, 0xa3, + 0x5b, 0xba, 0x2a, 0xb4, 0x85, 0xcc, 0x46, 0x30, 0xd4, 0x17, 0x99, 0xfc, 0xe2, 0x80, 0xbb, 0x9c, + 0x0b, 0xf4, 0x05, 0x78, 0xea, 0x51, 0xd0, 0xfc, 0xd6, 0x07, 0xd5, 0x76, 0xf5, 0x90, 0x32, 0xb9, + 0xcc, 0xd1, 0x97, 0xe0, 0x09, 0x59, 0x2b, 0x60, 0xff, 0xce, 0x36, 0x1a, 0x0a, 0x59, 0x2f, 0xf3, + 0x19, 0x80, 0x4f, 0xf3, 0xcc, 0xdc, 0xe3, 0x0f, 0x07, 0xa2, 0x2b, 0x82, 0xeb, 0xf5, 0x4d, 0x4a, + 0x44, 0x53, 0x18, 0xb3, 0x1f, 0x41, 0xc8, 0x9a, 0x32, 0xfb, 0xa9, 0x21, 0x35, 0x25, 0xc2, 0x1a, + 0x02, 0x58, 0x53, 0x7e, 0x6f, 0x76, 0xd0, 0x7d, 0x18, 0x4a, 0x5e, 0x65, 0x6f, 0xf5, 0xd9, 0x6e, + 0x3a, 0x90, 0xbc, 0xba, 0x40, 0x5f, 0x43, 0x68, 0x86, 0xe4, 0xf6, 0x95, 0xba, 0xef, 0xad, 0x67, + 0xd7, 0xde, 0xd4, 0x74, 0x4a, 0xfb, 0x52, 0x4d, 0x6b, 0xb1, 0xe6, 0x35, 0x31, 0x53, 0xb9, 0x9f, + 0xda, 0x15, 0x7a, 0x0c, 0x2e, 0xcd, 0x85, 0x7d, 0x73, 0x71, 0xf7, 0xcc, 0x98, 0x8b, 0x54, 0x25, + 0x3d, 0xfe, 0xd5, 0x01, 0x7f, 0x6b, 0x07, 0xe4, 0xc3, 0xe0, 0x15, 0x67, 0x24, 0xea, 0xa9, 0x48, + 0x0d, 0xa5, 0xc8, 0x51, 0xd1, 0x92, 0xc9, 0x67, 0x51, 0x1f, 0x05, 0x30, 0x5c, 0x32, 0xf9, 0xe4, + 0x69, 0xe4, 0xda, 0xf0, 0xec, 0x34, 0x1a, 0xd8, 0xf0, 0xe9, 0x67, 0xd1, 0x50, 0x85, 0xda, 0xd4, + 0x11, 0x20, 0x00, 0xcf, 0x3c, 0xeb, 0x28, 0x54, 0xb1, 0x91, 0x35, 0xfa, 0x00, 0x45, 0x30, 0x9e, + 0xb5, 0x3c, 0x1c, 0xe5, 0xe8, 0xff, 0x10, 0x9e, 0xef, 0xbd, 0x1f, 0x91, 0xd9, 0xe7, 0x3f, 0x9e, + 0x5d, 0x53, 0x79, 0xd3, 0xac, 0xd4, 0x1f, 0xf1, 0xc4, 0x5c, 0xfe, 0x53, 0xca, 0x6d, 0x74, 0x42, + 0x99, 0x24, 0x35, 0xc3, 0xc5, 0x89, 0xae, 0xe7, 0xc4, 0xd4, 0x53, 0xad, 0x56, 0x9e, 0x5e, 0x9f, + 0xfd, 0x13, 0x00, 0x00, 0xff, 0xff, 0x6e, 0xe2, 0xe5, 0x04, 0xa3, 0x08, 0x00, 0x00, } diff --git a/internal/proxynode/task.go b/internal/proxynode/task.go index 9cc190c523..3167260e0d 100644 --- a/internal/proxynode/task.go +++ b/internal/proxynode/task.go @@ -1253,12 +1253,11 @@ func (st *SearchTask) PreExecute(ctx context.Context) error { st.Base.MsgType = commonpb.MsgType_Search + schema, err := globalMetaCache.GetCollectionSchema(ctx, collectionName) + if err != nil { // err is not nil if collection not exists + return err + } if st.query.GetDslType() == commonpb.DslType_BoolExprV1 { - schema, err := globalMetaCache.GetCollectionSchema(ctx, collectionName) - if err != nil { // err is not nil if collection not exists - return err - } - annsField, err := GetAttrByKeyFromRepeatedKV(AnnsFieldKey, st.query.SearchParams) if err != nil { return errors.New(AnnsFieldKey + " not found in search_params") @@ -1294,6 +1293,15 @@ func (st *SearchTask) PreExecute(ctx context.Context) error { return errors.New("invalid expression: " + st.query.Dsl) } + for _, field := range schema.Fields { + for _, name := range st.query.OutputFields { + if field.Name == name { + st.SearchRequest.OutputFieldsId = append(st.SearchRequest.OutputFieldsId, field.FieldID) + plan.OutputFieldIds = append(plan.OutputFieldIds, field.FieldID) + } + } + } + st.SearchRequest.DslType = commonpb.DslType_BoolExprV1 st.SearchRequest.SerializedExprPlan, err = proto.Marshal(plan) if err != nil { @@ -1438,8 +1446,24 @@ func decodeSearchResultsParallel(searchResults []*internalpb.SearchResults, maxP return hits, nil } -func decodeSearchResultsSerial(searchResults []*internalpb.SearchResults) ([][]*milvuspb.Hits, error) { - return decodeSearchResultsParallel(searchResults, 1) +func decodeSearchResultsSerial(searchResults []*internalpb.SearchResults) ([]*schemapb.SearchResultData, error) { + results := make([]*schemapb.SearchResultData, 0) + // necessary to parallel this? + for _, partialSearchResult := range searchResults { + if partialSearchResult.SlicedBlob == nil { + continue + } + + var partialResultData schemapb.SearchResultData + err := proto.Unmarshal(partialSearchResult.SlicedBlob, &partialResultData) + if err != nil { + return nil, err + } + + results = append(results, &partialResultData) + } + + return results, nil } // TODO: add benchmark to compare with serial implementation @@ -1456,12 +1480,13 @@ func decodeSearchResultsParallelByCPU(searchResults []*internalpb.SearchResults) return decodeSearchResultsParallel(searchResults, runtime.NumCPU()) } -func decodeSearchResults(searchResults []*internalpb.SearchResults) ([][]*milvuspb.Hits, error) { +func decodeSearchResults(searchResults []*internalpb.SearchResults) ([]*schemapb.SearchResultData, error) { t := time.Now() defer func() { log.Debug("decodeSearchResults", zap.Any("time cost", time.Since(t))) }() - return decodeSearchResultsParallelByCPU(searchResults) + return decodeSearchResultsSerial(searchResults) + // return decodeSearchResultsParallelByCPU(searchResults) } func reduceSearchResultsParallel(hits [][]*milvuspb.Hits, nq, availableQueryNodeNum, topk int, metricType string, maxParallel int) *milvuspb.SearchResults { @@ -1471,7 +1496,6 @@ func reduceSearchResultsParallel(hits [][]*milvuspb.Hits, nq, availableQueryNode Status: &commonpb.Status{ ErrorCode: 0, }, - Hits: make([][]byte, nq), } const minFloat32 = -1 * float32(math.MaxFloat32) @@ -1521,12 +1545,12 @@ func reduceSearchResultsParallel(hits [][]*milvuspb.Hits, nq, availableQueryNode } } - reducedHitsBs, err := proto.Marshal(reducedHits) - if err != nil { - return err - } + // reducedHitsBs, err := proto.Marshal(reducedHits) + // if err != nil { + // return err + // } - ret.Hits[idx] = reducedHitsBs + // ret.Hits[idx] = reducedHitsBs return nil } @@ -1539,6 +1563,183 @@ func reduceSearchResultsParallel(hits [][]*milvuspb.Hits, nq, availableQueryNode return ret } +func reduceSearchResultDataParallel(searchResultData []*schemapb.SearchResultData, nq, availableQueryNodeNum, topk int, metricType string, maxParallel int) *milvuspb.SearchResults { + log.Debug("reduceSearchResultDataParallel", zap.Any("NumOfGoRoutines", maxParallel)) + + ret := &milvuspb.SearchResults{ + Status: &commonpb.Status{ + ErrorCode: 0, + }, + Results: &schemapb.SearchResultData{ + NumQueries: int64(nq), + TopK: int64(topk), + FieldsData: make([]*schemapb.FieldData, len(searchResultData[0].FieldsData)), + Scores: make([]float32, 0), + Ids: &schemapb.IDs{ + IdField: &schemapb.IDs_IntId{ + IntId: &schemapb.LongArray{ + Data: make([]int64, 0), + }, + }, + }, + }, + } + + const minFloat32 = -1 * float32(math.MaxFloat32) + + // TODO(yukun): Use parallel function + for idx := 0; idx < nq; idx++ { + locs := make([]int, availableQueryNodeNum) + + for j := 0; j < topk; j++ { + valid := false + choice, maxDistance := 0, minFloat32 + for q, loc := range locs { // query num, the number of ways to merge + if loc >= topk { + continue + } + distance := searchResultData[q].Scores[idx*topk+loc] + if distance > maxDistance || (math.Abs(float64(distance-maxDistance)) < math.SmallestNonzeroFloat32 && choice != q) { + choice = q + maxDistance = distance + valid = true + } + } + if !valid { + break + } + choiceOffset := locs[choice] + // check if distance is valid, `invalid` here means very very big, + // in this process, distance here is the smallest, so the rest of distance are all invalid + if searchResultData[choice].Scores[idx*topk+choiceOffset] <= minFloat32 { + break + } + curIdx := idx*topk + choiceOffset + ret.Results.Ids.GetIntId().Data = append(ret.Results.Ids.GetIntId().Data, searchResultData[choice].Ids.GetIntId().Data[curIdx]) + // TODO(yukun): Process searchResultData.FieldsData + for k, fieldData := range searchResultData[choice].FieldsData { + switch fieldType := fieldData.Field.(type) { + case *schemapb.FieldData_Scalars: + if ret.Results.FieldsData[k].GetScalars() == nil { + ret.Results.FieldsData[k] = &schemapb.FieldData{ + FieldName: fieldData.FieldName, + Field: &schemapb.FieldData_Scalars{ + Scalars: &schemapb.ScalarField{}, + }, + } + } + switch scalarType := fieldType.Scalars.Data.(type) { + case *schemapb.ScalarField_BoolData: + if ret.Results.FieldsData[k].GetScalars().GetBoolData() == nil { + ret.Results.FieldsData[k].Field.(*schemapb.FieldData_Scalars).Scalars = &schemapb.ScalarField{ + Data: &schemapb.ScalarField_BoolData{ + BoolData: &schemapb.BoolArray{ + Data: []bool{scalarType.BoolData.Data[curIdx]}, + }, + }, + } + } else { + ret.Results.FieldsData[k].GetScalars().GetBoolData().Data = append(ret.Results.FieldsData[k].GetScalars().GetBoolData().Data, scalarType.BoolData.Data[curIdx]) + } + case *schemapb.ScalarField_IntData: + if ret.Results.FieldsData[k].GetScalars().GetIntData() == nil { + ret.Results.FieldsData[k].Field.(*schemapb.FieldData_Scalars).Scalars = &schemapb.ScalarField{ + Data: &schemapb.ScalarField_IntData{ + IntData: &schemapb.IntArray{ + Data: []int32{scalarType.IntData.Data[curIdx]}, + }, + }, + } + } else { + ret.Results.FieldsData[k].GetScalars().GetIntData().Data = append(ret.Results.FieldsData[k].GetScalars().GetIntData().Data, scalarType.IntData.Data[curIdx]) + } + case *schemapb.ScalarField_LongData: + if ret.Results.FieldsData[k].GetScalars().GetLongData() == nil { + ret.Results.FieldsData[k].Field.(*schemapb.FieldData_Scalars).Scalars = &schemapb.ScalarField{ + Data: &schemapb.ScalarField_LongData{ + LongData: &schemapb.LongArray{ + Data: []int64{scalarType.LongData.Data[curIdx]}, + }, + }, + } + } else { + ret.Results.FieldsData[k].GetScalars().GetLongData().Data = append(ret.Results.FieldsData[k].GetScalars().GetLongData().Data, scalarType.LongData.Data[curIdx]) + } + case *schemapb.ScalarField_FloatData: + if ret.Results.FieldsData[k].GetScalars().GetFloatData() == nil { + ret.Results.FieldsData[k].Field.(*schemapb.FieldData_Scalars).Scalars = &schemapb.ScalarField{ + Data: &schemapb.ScalarField_FloatData{ + FloatData: &schemapb.FloatArray{ + Data: []float32{scalarType.FloatData.Data[curIdx]}, + }, + }, + } + } else { + ret.Results.FieldsData[k].GetScalars().GetFloatData().Data = append(ret.Results.FieldsData[k].GetScalars().GetFloatData().Data, scalarType.FloatData.Data[curIdx]) + } + case *schemapb.ScalarField_DoubleData: + if ret.Results.FieldsData[k].GetScalars().GetDoubleData() == nil { + ret.Results.FieldsData[k].Field.(*schemapb.FieldData_Scalars).Scalars = &schemapb.ScalarField{ + Data: &schemapb.ScalarField_DoubleData{ + DoubleData: &schemapb.DoubleArray{ + Data: []float64{scalarType.DoubleData.Data[curIdx]}, + }, + }, + } + } else { + ret.Results.FieldsData[k].GetScalars().GetDoubleData().Data = append(ret.Results.FieldsData[k].GetScalars().GetDoubleData().Data, scalarType.DoubleData.Data[curIdx]) + } + default: + log.Debug("Not supported field type") + return nil + } + case *schemapb.FieldData_Vectors: + dim := fieldType.Vectors.Dim + if ret.Results.FieldsData[k].GetVectors() == nil { + ret.Results.FieldsData[k] = &schemapb.FieldData{ + FieldName: fieldData.FieldName, + Field: &schemapb.FieldData_Vectors{ + Vectors: &schemapb.VectorField{ + Dim: dim, + }, + }, + } + } + switch vectorType := fieldType.Vectors.Data.(type) { + case *schemapb.VectorField_BinaryVector: + if ret.Results.FieldsData[k].GetVectors().GetBinaryVector() == nil { + ret.Results.FieldsData[k].GetVectors().Data.(*schemapb.VectorField_BinaryVector).BinaryVector = []byte{vectorType.BinaryVector[curIdx*int((dim/8))]} + } else { + ret.Results.FieldsData[k].GetVectors().Data.(*schemapb.VectorField_BinaryVector).BinaryVector = append(ret.Results.FieldsData[k].GetVectors().Data.(*schemapb.VectorField_BinaryVector).BinaryVector, vectorType.BinaryVector[curIdx*int((dim/8)):(curIdx+1)*int((dim/8))]...) + } + case *schemapb.VectorField_FloatVector: + if ret.Results.FieldsData[k].GetVectors().GetFloatVector() == nil { + ret.Results.FieldsData[k].GetVectors().GetFloatVector().Data = []float32{vectorType.FloatVector.Data[curIdx*int(dim)]} + } else { + ret.Results.FieldsData[k].GetVectors().GetFloatVector().Data = append(ret.Results.FieldsData[k].GetVectors().GetFloatVector().Data, vectorType.FloatVector.Data[curIdx*int(dim):(curIdx+1)*int(dim)]...) + } + } + } + } + ret.Results.Scores = append(ret.Results.Scores, searchResultData[choice].Scores[idx*topk+choiceOffset]) + locs[choice]++ + } + + } + + if metricType != "IP" { + for k := range ret.Results.Scores { + ret.Results.Scores[k] *= -1 + } + } + // err := funcutil.ProcessFuncParallel(nq, maxParallel, f, "reduceSearchResults") + // if err != nil { + // return nil + // } + + return ret +} + func reduceSearchResultsSerial(hits [][]*milvuspb.Hits, nq, availableQueryNodeNum, topk int, metricType string) *milvuspb.SearchResults { return reduceSearchResultsParallel(hits, nq, availableQueryNodeNum, topk, metricType, 1) } @@ -1561,6 +1762,14 @@ func reduceSearchResults(hits [][]*milvuspb.Hits, nq, availableQueryNodeNum, top return reduceSearchResultsParallelByCPU(hits, nq, availableQueryNodeNum, topk, metricType) } +func reduceSearchResultData(searchResultData []*schemapb.SearchResultData, nq, availableQueryNodeNum, topk int, metricType string) *milvuspb.SearchResults { + t := time.Now() + defer func() { + log.Debug("reduceSearchResults", zap.Any("time cost", time.Since(t))) + }() + return reduceSearchResultDataParallel(searchResultData, nq, availableQueryNodeNum, topk, metricType, runtime.NumCPU()) +} + func printSearchResult(partialSearchResult *internalpb.SearchResults) { for i := 0; i < len(partialSearchResult.Hits); i++ { testHits := milvuspb.Hits{} @@ -1612,7 +1821,7 @@ func (st *SearchTask) PostExecute(ctx context.Context) error { availableQueryNodeNum = 0 for _, partialSearchResult := range filterSearchResult { - if partialSearchResult.Hits == nil || len(partialSearchResult.Hits) <= 0 { + if partialSearchResult.SlicedBlob == nil { filterReason += "nq is zero\n" continue } @@ -1632,14 +1841,14 @@ func (st *SearchTask) PostExecute(ctx context.Context) error { return nil } - hits, err := decodeSearchResults(filterSearchResult) + results, err := decodeSearchResults(filterSearchResult) log.Debug("ProxyNode Search PostExecute decodeSearchResults", zap.Error(err)) if err != nil { return err } - nq := len(hits[0]) - log.Debug("ProxyNode Search PostExecute", zap.Any("nq", nq)) + nq := results[0].NumQueries + topk := results[0].TopK if nq <= 0 { st.result = &milvuspb.SearchResults{ Status: &commonpb.Status{ @@ -1650,12 +1859,21 @@ func (st *SearchTask) PostExecute(ctx context.Context) error { return nil } - topk := 0 - for _, hit := range hits { - topk = getMax(topk, len(hit[0].IDs)) + st.result = reduceSearchResultData(results, int(nq), availableQueryNodeNum, int(topk), searchResults[0].MetricType) + + schema, err := globalMetaCache.GetCollectionSchema(ctx, st.query.CollectionName) + if err != nil { + return err + } + for k, fieldName := range st.query.OutputFields { + for _, field := range schema.Fields { + if field.Name == fieldName { + st.result.Results.FieldsData[k].FieldName = fieldName + st.result.Results.FieldsData[k].Type = field.DataType + } + } } - st.result = reduceSearchResults(hits, nq, availableQueryNodeNum, topk, searchResults[0].MetricType) log.Debug("ProxyNode Search PostExecute Done") return nil } diff --git a/internal/querynode/search_collection.go b/internal/querynode/search_collection.go index f69f8d9ee2..80ae810220 100644 --- a/internal/querynode/search_collection.go +++ b/internal/querynode/search_collection.go @@ -13,12 +13,16 @@ package querynode import ( "context" + "encoding/binary" "errors" "fmt" "math" "reflect" "sync" + "github.com/milvus-io/milvus/internal/proto/schemapb" + "github.com/milvus-io/milvus/internal/util/typeutil" + "github.com/golang/protobuf/proto" "github.com/milvus-io/milvus/internal/log" "github.com/milvus-io/milvus/internal/msgstream" @@ -409,6 +413,228 @@ func (s *searchCollection) doUnsolvedMsgSearch() { } } +func translateHits(schema *typeutil.SchemaHelper, fieldIDs []int64, rawHits [][]byte) (*schemapb.SearchResultData, error) { + if len(rawHits) == 0 { + return nil, fmt.Errorf("empty results") + } + + var hits []*milvuspb.Hits + for _, rawHit := range rawHits { + var hit milvuspb.Hits + err := proto.Unmarshal(rawHit, &hit) + if err != nil { + return nil, err + } + hits = append(hits, &hit) + } + + blobOffset := 0 + // skip id + numQuereis := len(rawHits) + pbHits := &milvuspb.Hits{} + err := proto.Unmarshal(rawHits[0], pbHits) + if err != nil { + return nil, err + } + topK := len(pbHits.IDs) + + blobOffset += 8 + var ids []int64 + var scores []float32 + for _, hit := range hits { + ids = append(ids, hit.IDs...) + scores = append(scores, hit.Scores...) + } + + finalResult := &schemapb.SearchResultData{ + Ids: &schemapb.IDs{ + IdField: &schemapb.IDs_IntId{ + IntId: &schemapb.LongArray{ + Data: ids, + }, + }, + }, + Scores: scores, + TopK: int64(topK), + NumQueries: int64(numQuereis), + } + + for _, fieldID := range fieldIDs { + fieldMeta, err := schema.GetFieldFromID(fieldID) + if err != nil { + return nil, err + } + switch fieldMeta.DataType { + case schemapb.DataType_Bool: + blobLen := 1 + var colData []bool + for _, hit := range hits { + for _, row := range hit.RowData { + dataBlob := row[blobOffset : blobOffset+blobLen] + data := dataBlob[0] + colData = append(colData, data != 0) + } + } + newCol := &schemapb.FieldData{ + Field: &schemapb.FieldData_Scalars{ + Scalars: &schemapb.ScalarField{ + Data: &schemapb.ScalarField_BoolData{ + BoolData: &schemapb.BoolArray{ + Data: colData, + }, + }, + }, + }, + } + finalResult.FieldsData = append(finalResult.FieldsData, newCol) + blobOffset += blobLen + case schemapb.DataType_Int8: + blobLen := 1 + var colData []int32 + for _, hit := range hits { + for _, row := range hit.RowData { + dataBlob := row[blobOffset : blobOffset+blobLen] + data := int32(dataBlob[0]) + colData = append(colData, data) + } + } + newCol := &schemapb.FieldData{ + Field: &schemapb.FieldData_Scalars{ + Scalars: &schemapb.ScalarField{ + Data: &schemapb.ScalarField_IntData{ + IntData: &schemapb.IntArray{ + Data: colData, + }, + }, + }, + }, + } + finalResult.FieldsData = append(finalResult.FieldsData, newCol) + blobOffset += blobLen + case schemapb.DataType_Int16: + blobLen := 2 + var colData []int32 + for _, hit := range hits { + for _, row := range hit.RowData { + dataBlob := row[blobOffset : blobOffset+blobLen] + data := int32(int16(binary.LittleEndian.Uint16(dataBlob))) + colData = append(colData, data) + } + } + newCol := &schemapb.FieldData{ + Field: &schemapb.FieldData_Scalars{ + Scalars: &schemapb.ScalarField{ + Data: &schemapb.ScalarField_IntData{ + IntData: &schemapb.IntArray{ + Data: colData, + }, + }, + }, + }, + } + finalResult.FieldsData = append(finalResult.FieldsData, newCol) + blobOffset += blobLen + case schemapb.DataType_Int32: + blobLen := 4 + var colData []int32 + for _, hit := range hits { + for _, row := range hit.RowData { + dataBlob := row[blobOffset : blobOffset+blobLen] + data := int32(binary.LittleEndian.Uint32(dataBlob)) + colData = append(colData, data) + } + } + newCol := &schemapb.FieldData{ + Field: &schemapb.FieldData_Scalars{ + Scalars: &schemapb.ScalarField{ + Data: &schemapb.ScalarField_IntData{ + IntData: &schemapb.IntArray{ + Data: colData, + }, + }, + }, + }, + } + finalResult.FieldsData = append(finalResult.FieldsData, newCol) + blobOffset += blobLen + case schemapb.DataType_Int64: + blobLen := 8 + var colData []int64 + for _, hit := range hits { + for _, row := range hit.RowData { + dataBlob := row[blobOffset : blobOffset+blobLen] + data := int64(binary.LittleEndian.Uint64(dataBlob)) + colData = append(colData, data) + } + } + newCol := &schemapb.FieldData{ + Field: &schemapb.FieldData_Scalars{ + Scalars: &schemapb.ScalarField{ + Data: &schemapb.ScalarField_LongData{ + LongData: &schemapb.LongArray{ + Data: colData, + }, + }, + }, + }, + } + finalResult.FieldsData = append(finalResult.FieldsData, newCol) + blobOffset += blobLen + case schemapb.DataType_Float: + blobLen := 4 + var colData []float32 + for _, hit := range hits { + for _, row := range hit.RowData { + dataBlob := row[blobOffset : blobOffset+blobLen] + data := math.Float32frombits(binary.LittleEndian.Uint32(dataBlob)) + colData = append(colData, data) + } + } + newCol := &schemapb.FieldData{ + Field: &schemapb.FieldData_Scalars{ + Scalars: &schemapb.ScalarField{ + Data: &schemapb.ScalarField_FloatData{ + FloatData: &schemapb.FloatArray{ + Data: colData, + }, + }, + }, + }, + } + finalResult.FieldsData = append(finalResult.FieldsData, newCol) + blobOffset += blobLen + case schemapb.DataType_Double: + blobLen := 8 + var colData []float64 + for _, hit := range hits { + for _, row := range hit.RowData { + dataBlob := row[blobOffset : blobOffset+blobLen] + data := math.Float64frombits(binary.LittleEndian.Uint64(dataBlob)) + colData = append(colData, data) + } + } + newCol := &schemapb.FieldData{ + Field: &schemapb.FieldData_Scalars{ + Scalars: &schemapb.ScalarField{ + Data: &schemapb.ScalarField_DoubleData{ + DoubleData: &schemapb.DoubleArray{ + Data: colData, + }, + }, + }, + }, + } + finalResult.FieldsData = append(finalResult.FieldsData, newCol) + blobOffset += blobLen + case schemapb.DataType_FloatVector: + case schemapb.DataType_BinaryVector: + return nil, fmt.Errorf("unsupported") + default: + } + } + return finalResult, nil +} + // TODO:: cache map[dsl]plan // TODO: reBatched search requests func (s *searchCollection) search(searchMsg *msgstream.SearchMsg) error { @@ -422,6 +648,11 @@ func (s *searchCollection) search(searchMsg *msgstream.SearchMsg) error { if err != nil { return err } + schema, err := typeutil.CreateSchemaHelper(collection.schema) + if err != nil { + return err + } + var plan *Plan if searchMsg.GetDslType() == commonpb.DslType_BoolExprV1 { expr := searchMsg.SerializedExprPlan @@ -589,6 +820,20 @@ func (s *searchCollection) search(searchMsg *msgstream.SearchMsg) error { //log.Debug("hits msg = ", unMarshaledHit) offset += len } + + // TODO: remove inefficient code in cgo and use SearchResultData directly + // TODO: Currently add a translate layer from hits to SearchResultData + // TODO: hits marshal and unmarshal is likely bottleneck + + transformed, err := translateHits(schema, searchMsg.OutputFieldsId, hits) + if err != nil { + return err + } + byteBlobs, err := proto.Marshal(transformed) + if err != nil { + return err + } + resultChannelInt := 0 searchResultMsg := &msgstream.SearchResultMsg{ BaseMsg: msgstream.BaseMsg{Ctx: searchMsg.Ctx, HashValues: []uint32{uint32(resultChannelInt)}}, @@ -602,6 +847,9 @@ func (s *searchCollection) search(searchMsg *msgstream.SearchMsg) error { Status: &commonpb.Status{ErrorCode: commonpb.ErrorCode_Success}, ResultChannelID: searchMsg.ResultChannelID, Hits: hits, + SlicedBlob: byteBlobs, + SlicedOffset: 1, + SlicedNumCount: 1, MetricType: plan.getMetricType(), SealedSegmentIDsSearched: sealedSegmentSearched, ChannelIDsSearched: collection.getPChannels(), @@ -686,7 +934,6 @@ func (s *searchCollection) publishFailedSearchResult(searchMsg *msgstream.Search }, Status: &commonpb.Status{ErrorCode: commonpb.ErrorCode_UnexpectedError, Reason: errMsg}, ResultChannelID: searchMsg.ResultChannelID, - Hits: [][]byte{}, }, } diff --git a/tests/python_test/requirements.txt b/tests/python_test/requirements.txt index 222f291641..efa8b87acc 100644 --- a/tests/python_test/requirements.txt +++ b/tests/python_test/requirements.txt @@ -12,7 +12,7 @@ pytest-print==0.2.1 pytest-level==0.1.1 pytest-xdist==2.2.1 pytest-parallel -pymilvus-orm==2.0a1.dev37 +pymilvus-orm==2.0a1.dev40 pytest-rerunfailures==9.1.1 git+https://github.com/Projectplace/pytest-tags ndg-httpsclient