refine code

Former-commit-id: 9205f1d9bfcd3f4a48688b989cfe52b26dba29de
This commit is contained in:
groot 2019-05-09 21:41:44 +08:00
parent 9d32c072e4
commit f7a2ac7b00

View File

@ -22,6 +22,8 @@ using namespace zilliz::vecwise::client;
namespace { namespace {
static const int32_t VEC_DIMENSION = 256; static const int32_t VEC_DIMENSION = 256;
static const int64_t BATCH_COUNT = 1000; static const int64_t BATCH_COUNT = 1000;
static const int64_t REPEAT_COUNT = 1;
static const int64_t TOP_K = 10;
static const std::string TEST_ATTRIB_NUM = "number"; static const std::string TEST_ATTRIB_NUM = "number";
static const std::string TEST_ATTRIB_COMMENT = "comment"; static const std::string TEST_ATTRIB_COMMENT = "comment";
@ -182,62 +184,66 @@ TEST(AddVector, CLIENT_TEST) {
group.index_type = 0; group.index_type = 0;
session.interface()->add_group(group); session.interface()->add_group(group);
//prepare data for(int64_t r = 0; r < REPEAT_COUNT; r++) {
CLIENT_LOG_INFO << "Preparing vectors..."; //prepare data
const int64_t count = BATCH_COUNT; CLIENT_LOG_INFO << "Preparing vectors...";
VecTensorList tensor_list_1, tensor_list_2; const int64_t count = BATCH_COUNT;
VecBinaryTensorList bin_tensor_list_1, bin_tensor_list_2; int64_t offset = r*count*2;
BuildVectors(0, count, &tensor_list_1, &bin_tensor_list_1); VecTensorList tensor_list_1, tensor_list_2;
BuildVectors(count, count*2, &tensor_list_2, &bin_tensor_list_2); VecBinaryTensorList bin_tensor_list_1, bin_tensor_list_2;
BuildVectors(0 + offset, count + offset, &tensor_list_1, &bin_tensor_list_1);
BuildVectors(count + offset, count * 2 + offset, &tensor_list_2, &bin_tensor_list_2);
#if 0 #if 0
//add vectors one by one //add vectors one by one
{ {
server::TimeRecorder rc("Add " + std::to_string(count) + " vectors one by one"); server::TimeRecorder rc("Add " + std::to_string(count) + " vectors one by one");
for (int64_t k = 0; k < count; k++) { for (int64_t k = 0; k < count; k++) {
std::string id; std::string id;
tensor_list_1.tensor_list[k].uid = ""; tensor_list_1.tensor_list[k].uid = "";
session.interface()->add_vector(id, group.id, tensor_list_1.tensor_list[k]); session.interface()->add_vector(id, group.id, tensor_list_1.tensor_list[k]);
if (k % 1000 == 0) { if (k % 1000 == 0) {
CLIENT_LOG_INFO << "add normal vector no." << k; CLIENT_LOG_INFO << "add normal vector no." << k;
}
ASSERT_TRUE(!id.empty());
} }
ASSERT_TRUE(!id.empty()); rc.Elapse("done!");
} }
rc.Elapse("done!");
}
//add vectors in one batch //add vectors in one batch
{ {
server::TimeRecorder rc("Add " + std::to_string(count) + " vectors in one batch"); server::TimeRecorder rc("Add " + std::to_string(count) + " vectors in one batch");
std::vector<std::string> ids; std::vector<std::string> ids;
session.interface()->add_vector_batch(ids, group.id, tensor_list_2); session.interface()->add_vector_batch(ids, group.id, tensor_list_2);
rc.Elapse("done!"); rc.Elapse("done!");
} }
#else #else
//add binary vectors one by one //add binary vectors one by one
{ {
server::TimeRecorder rc("Add " + std::to_string(count) + " binary vectors one by one"); server::TimeRecorder rc("Add " + std::to_string(count) + " binary vectors one by one");
for (int64_t k = 0; k < count; k++) { for (int64_t k = 0; k < count; k++) {
std::string id; std::string id;
bin_tensor_list_1.tensor_list[k].uid = ""; bin_tensor_list_1.tensor_list[k].uid = "";
session.interface()->add_binary_vector(id, group.id, bin_tensor_list_1.tensor_list[k]); session.interface()->add_binary_vector(id, group.id, bin_tensor_list_1.tensor_list[k]);
if (k % 1000 == 0) { if (k % 1000 == 0) {
CLIENT_LOG_INFO << "add binary vector no." << k; CLIENT_LOG_INFO << "add binary vector no." << k;
}
ASSERT_TRUE(!id.empty());
} }
ASSERT_TRUE(!id.empty()); rc.Elapse("done!");
} }
rc.Elapse("done!");
//add binary vectors in one batch
{
server::TimeRecorder rc("Add " + std::to_string(count) + " binary vectors in one batch");
std::vector<std::string> ids;
session.interface()->add_binary_vector_batch(ids, group.id, bin_tensor_list_2);
rc.Elapse("done!");
}
#endif
} }
//add binary vectors in one batch
{
server::TimeRecorder rc("Add " + std::to_string(count) + " binary vectors in one batch");
std::vector<std::string> ids;
session.interface()->add_binary_vector_batch(ids, group.id, bin_tensor_list_2);
rc.Elapse("done!");
}
#endif
} catch (std::exception &ex) { } catch (std::exception &ex) {
CLIENT_LOG_ERROR << "request encounter exception: " << ex.what(); CLIENT_LOG_ERROR << "request encounter exception: " << ex.what();
ASSERT_TRUE(false); ASSERT_TRUE(false);
@ -258,7 +264,6 @@ TEST(SearchVector, CLIENT_TEST) {
//search vector //search vector
{ {
const int32_t anchor_index = 100; const int32_t anchor_index = 100;
const int64_t top_k = 10;
server::TimeRecorder rc("Search top_k"); server::TimeRecorder rc("Search top_k");
VecTensor tensor; VecTensor tensor;
for (int32_t i = 0; i < VEC_DIMENSION; i++) { for (int32_t i = 0; i < VEC_DIMENSION; i++) {
@ -278,7 +283,7 @@ TEST(SearchVector, CLIENT_TEST) {
filter.__set_time_ranges(time_ranges); filter.__set_time_ranges(time_ranges);
//do search //do search
session.interface()->search_vector(res, GetGroupID(), top_k, tensor, filter); session.interface()->search_vector(res, GetGroupID(), TOP_K, tensor, filter);
//build result //build result
std::cout << "Search result: " << std::endl; std::cout << "Search result: " << std::endl;
@ -291,7 +296,7 @@ TEST(SearchVector, CLIENT_TEST) {
} }
rc.Elapse("done!"); rc.Elapse("done!");
ASSERT_EQ(res.result_list.size(), (uint64_t)top_k); ASSERT_EQ(res.result_list.size(), (uint64_t)TOP_K);
if(!res.result_list.empty()) { if(!res.result_list.empty()) {
ASSERT_TRUE(!res.result_list[0].uid.empty()); ASSERT_TRUE(!res.result_list[0].uid.empty());
} }