Change search result to columnBased and return target_entry (#5896)

* Change search result to columnBased and return target_entry

Signed-off-by: fishpenguin <kun.yu@zilliz.com>

Co-authored-by: fluorinedog <fluorinedog@gmail.com>

* synchronize the latest pymilvus-orm version

Signed-off-by: fishpenguin <kun.yu@zilliz.com>

* Change pymilvus-orm version to 40

Signed-off-by: fishpenguin <kun.yu@zilliz.com>

Co-authored-by: fluorinedog <fluorinedog@gmail.com>
pull/5960/head
yukun 2021-06-21 20:18:13 +08:00 committed by GitHub
parent e3fe706045
commit b2eb596c23
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 2465 additions and 744 deletions

View File

@ -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<int>(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<int>(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<unsigned int>(this->search_params_size()); i < n; i++) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
8,
9,
this->search_params(static_cast<int>(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<int>(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<unsigned int>(this->search_params_size()); i < n; i++) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
InternalWriteMessageToArray(
8, this->search_params(static_cast<int>(i)), target);
9, this->search_params(static_cast<int>(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<unsigned int>(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<size_t>(
reinterpret_cast<char*>(&results_) -
reinterpret_cast<char*>(&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 {

View File

@ -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<std::string>& partition_names() const;
::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* 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<std::string>& output_fields() const;
::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* 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<std::string> partition_names_;
::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> 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<std::string>& hits() const;
::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* 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<std::string> 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<const char*>(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<const char*>(value), size);
// @@protoc_insertion_point(field_add_pointer:milvus.proto.milvus.SearchRequest.output_fields)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
SearchRequest::output_fields() const {
// @@protoc_insertion_point(field_list:milvus.proto.milvus.SearchRequest.output_fields)
return output_fields_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
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<const ::milvus::proto::schema::SearchResultData*>(
&::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<const char*>(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<const char*>(value), size);
// @@protoc_insertion_point(field_add_pointer:milvus.proto.milvus.SearchResults.hits)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
SearchResults::hits() const {
// @@protoc_insertion_point(field_list:milvus.proto.milvus.SearchResults.hits)
return hits_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
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)
}
// -------------------------------------------------------------------

View File

@ -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]);
}

View File

@ -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<int> _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;
}

View File

@ -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<SearchResultData> _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<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::milvus::proto::schema::_VectorField_default_instance_),
reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::milvus::proto::schema::_FieldData_default_instance_),
reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::milvus::proto::schema::_IDs_default_instance_),
reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::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<size_t>(reinterpret_cast<char*>(&top_k_) -
reinterpret_cast<char*>(&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<size_t>(
reinterpret_cast<char*>(&top_k_) -
reinterpret_cast<char*>(&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<size_t>(
reinterpret_cast<char*>(&top_k_) -
reinterpret_cast<char*>(&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<float>(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<unsigned int>(this->fields_data_size()); i < n; i++) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
3,
this->fields_data(static_cast<int>(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<unsigned int>(this->fields_data_size()); i < n; i++) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
InternalWriteMessageToArray(
3, this->fields_data(static_cast<int>(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<unsigned int>(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<int>(i)));
}
}
// repeated float scores = 4;
{
unsigned int count = static_cast<unsigned int>(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<SearchResultData>(
&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)

View File

@ -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<const SearchResultData*>(
&_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<SearchResultData>(nullptr);
}
SearchResultData* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
return CreateMaybeMessage<SearchResultData>(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<int> _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<const ::milvus::proto::schema::IDs*>(
&::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)

View File

@ -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

View File

@ -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;

View File

@ -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,
}

View File

@ -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 {

View File

@ -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.

View File

@ -87,4 +87,5 @@ message PlanNode {
oneof node {
VectorANNS vector_anns = 1;
}
repeated int64 output_field_ids = 2;
}

View File

@ -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,
}

View File

@ -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;
}

View File

@ -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,
}

View File

@ -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
}

View File

@ -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{},
},
}

View File

@ -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