diff --git a/be/src/exec/es/es_scan_reader.cpp b/be/src/exec/es/es_scan_reader.cpp index 574a5047df..8fb1b3661e 100644 --- a/be/src/exec/es/es_scan_reader.cpp +++ b/be/src/exec/es/es_scan_reader.cpp @@ -104,9 +104,6 @@ Status ESScanReader::get_next(bool* scan_eos, std::unique_ptr& scr LOG(WARNING) << "request scroll search failure[" << "http status" << status << ", response: " << (response.empty() ? "empty response" : response); - if (status == 404) { - return Status::InternalError("No search context found for " + _scroll_id); - } return Status::InternalError("request scroll search failure: " + (response.empty() ? "empty response" : response)); } } @@ -125,11 +122,7 @@ Status ESScanReader::get_next(bool* scan_eos, std::unique_ptr& scr return Status::OK(); } - if (scroll_parser->get_size() < _batch_size) { - _eos = true; - } else { - _eos = false; - } + _eos = scroll_parser->get_size() < _batch_size; *scan_eos = false; return Status::OK(); diff --git a/be/test/exec/es_scan_reader_test.cpp b/be/test/exec/es_scan_reader_test.cpp index 2da96c025f..c45c8d1755 100644 --- a/be/test/exec/es_scan_reader_test.cpp +++ b/be/test/exec/es_scan_reader_test.cpp @@ -112,7 +112,7 @@ public: end_search_result.AddMember("_scroll_id", scroll_id_value, allocator); rapidjson::Value outer_hits(rapidjson::kObjectType); - outer_hits.AddMember("total", 10, allocator); + outer_hits.AddMember("total", 0, allocator); end_search_result.AddMember("hits", outer_hits, allocator); rapidjson::StringBuffer buffer; rapidjson::Writer writer(buffer); @@ -130,7 +130,7 @@ public: search_result.AddMember("_scroll_id", scroll_id_value, allocator); rapidjson::Value outer_hits(rapidjson::kObjectType); - outer_hits.AddMember("total", 10, allocator); + outer_hits.AddMember("total", 1, allocator); rapidjson::Value inner_hits(rapidjson::kArrayType); rapidjson::Value source_docuement(rapidjson::kObjectType); source_docuement.AddMember("id", start, allocator); @@ -225,11 +225,12 @@ TEST_F(MockESServerTest, workflow) { props[ESScanReader::KEY_QUERY] = ESScrollQueryBuilder::build(props, fields, predicates); ESScanReader reader(target, props); auto st = reader.open(); - // ASSERT_TRUE(st.ok()); + ASSERT_TRUE(st.ok()); bool eos = false; std::unique_ptr parser = nullptr; while(!eos){ st = reader.get_next(&eos, parser); + ASSERT_TRUE(st.ok()); if(eos) { break; }