未验证 提交 4beb0549 编写于 作者: Y yukun 提交者: GitHub

Add web server interface (#3257)

Signed-off-by: Nfishpenguin <kun.yu@zilliz.com>
上级 6f5be4b5
......@@ -1698,17 +1698,17 @@ GrpcRequestHandler::DeserializeJsonToBoolQuery(
if (vector_param_it != it.value().end()) {
const std::string& field_name = vector_param_it.key();
vector_query->field_name = field_name;
nlohmann::json vector_json = vector_param_it.value();
int64_t topk = vector_json["topk"];
nlohmann::json param_json = vector_param_it.value();
int64_t topk = param_json["topk"];
status = server::ValidateSearchTopk(topk);
if (!status.ok()) {
return status;
}
vector_query->topk = topk;
if (vector_json.contains("metric_type")) {
std::string metric_type = vector_json["metric_type"];
if (param_json.contains("metric_type")) {
std::string metric_type = param_json["metric_type"];
vector_query->metric_type = metric_type;
query_ptr->metric_types.insert({field_name, vector_json["metric_type"]});
query_ptr->metric_types.insert({field_name, param_json["metric_type"]});
}
if (!vector_param_it.value()["params"].empty()) {
vector_query->extra_params = vector_param_it.value()["params"];
......
......@@ -11,6 +11,7 @@
#pragma once
#include <map>
#include <string>
#include <unordered_map>
......@@ -72,6 +73,13 @@ enum StatusCode : int {
MAX = ILLEGAL_QUERY_PARAM
};
static std::map<std::string, engine::DataType> str2type = {{"int32", engine::DataType::INT32},
{"int64", engine::DataType::INT64},
{"float", engine::DataType::FLOAT},
{"double", engine::DataType::DOUBLE},
{"vector_float", engine::DataType::VECTOR_FLOAT},
{"vector_binary", engine::DataType::VECTOR_BINARY}};
} // namespace web
} // namespace server
} // namespace milvus
......@@ -85,7 +85,11 @@ class WebRequestHandler {
IsBinaryCollection(const std::string& collection_name, bool& bin);
Status
CopyRecordsFromJson(const nlohmann::json& json, engine::VectorsData& vectors, bool bin);
CopyRecordsFromJson(const nlohmann::json& json, std::vector<uint8_t>& vectors_data, bool bin);
Status
CopyData2Json(const engine::DataChunkPtr& data_chunk, const engine::snapshot::FieldElementMappings& field_mappings,
const std::vector<int64_t>& id_array, nlohmann::json& json_res);
protected:
Status
......@@ -124,10 +128,12 @@ class WebRequestHandler {
SetConfig(const nlohmann::json& json, std::string& result_str);
Status
ProcessLeafQueryJson(const nlohmann::json& json, query::BooleanQueryPtr& boolean_query);
ProcessLeafQueryJson(const nlohmann::json& json, query::BooleanQueryPtr& boolean_query, std::string& field_name,
query::QueryPtr& query_ptr);
Status
ProcessBoolQueryJson(const nlohmann::json& query_json, query::BooleanQueryPtr& boolean_query);
ProcessBooleanQueryJson(const nlohmann::json& query_json, query::BooleanQueryPtr& boolean_query,
query::QueryPtr& query_ptr);
Status
Search(const std::string& collection_name, const nlohmann::json& json, std::string& result_str);
......@@ -135,9 +141,6 @@ class WebRequestHandler {
Status
DeleteByIDs(const std::string& collection_name, const nlohmann::json& json, std::string& result_str);
Status
GetVectorsByIDs(const std::string& collection_name, const std::vector<int64_t>& ids, nlohmann::json& json_out);
Status
GetEntityByIDs(const std::string& collection_name, const std::vector<int64_t>& ids,
std::vector<std::string>& field_names, nlohmann::json& json_out);
......@@ -167,12 +170,10 @@ class WebRequestHandler {
#endif
StatusDto::ObjectWrapper
CreateCollection(const CollectionRequestDto::ObjectWrapper& table_schema);
StatusDto::ObjectWrapper
ShowCollections(const OQueryParams& query_params, OString& result);
CreateCollection(const milvus::server::web::OString& body);
StatusDto::ObjectWrapper
CreateHybridCollection(const OString& body);
ShowCollections(const OQueryParams& query_params, OString& result);
StatusDto::ObjectWrapper
GetCollection(const OString& collection_name, const OQueryParams& query_params, OString& result);
......@@ -181,10 +182,10 @@ class WebRequestHandler {
DropCollection(const OString& collection_name);
StatusDto::ObjectWrapper
CreateIndex(const OString& collection_name, const OString& body);
CreateIndex(const OString& collection_name, const OString& field_name, const OString& body);
StatusDto::ObjectWrapper
DropIndex(const OString& collection_name);
DropIndex(const OString& collection_name, const OString& field_name);
StatusDto::ObjectWrapper
CreatePartition(const OString& collection_name, const PartitionRequestDto::ObjectWrapper& param);
......@@ -221,7 +222,7 @@ class WebRequestHandler {
GetVector(const OString& collection_name, const OQueryParams& query_params, OString& response);
StatusDto::ObjectWrapper
VectorsOp(const OString& collection_name, const OString& payload, OString& response);
EntityOp(const OString& collection_name, const OString& payload, OString& response);
/**
*
......
......@@ -27,7 +27,7 @@ const char* COLLECTION_NAME = milvus_sdk::Utils::GenCollectionName().c_str();
constexpr int64_t COLLECTION_DIMENSION = 512;
constexpr int64_t COLLECTION_INDEX_FILE_SIZE = 1024;
constexpr milvus::MetricType COLLECTION_METRIC_TYPE = milvus::MetricType::L2;
constexpr int64_t BATCH_ENTITY_COUNT = 4000;
constexpr int64_t BATCH_ENTITY_COUNT = 10000;
constexpr int64_t NQ = 5;
constexpr int64_t TOP_K = 10;
constexpr int64_t NPROBE = 32;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册