From 7eccd3b6486888c3b9ef6ba45af2a864bc5ed61f Mon Sep 17 00:00:00 2001 From: tatiana-yan Date: Thu, 18 Jun 2020 21:33:15 +0300 Subject: [PATCH] [search_quality] aloha_to_samples_tool: add mode to save all events from aloha as samples. --- .../aloha_to_samples_tool.cpp | 35 +++++++++++++++---- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/search/search_quality/aloha_to_samples_tool/aloha_to_samples_tool.cpp b/search/search_quality/aloha_to_samples_tool/aloha_to_samples_tool.cpp index 6d3adff1f9..354c7ffc1d 100644 --- a/search/search_quality/aloha_to_samples_tool/aloha_to_samples_tool.cpp +++ b/search/search_quality/aloha_to_samples_tool/aloha_to_samples_tool.cpp @@ -36,6 +36,9 @@ DEFINE_string(categorial, "all", "Allowed values: 'all' - save all requests; 'only' - save only categorial requests; " "'no' - save all but categorial requests."); DEFINE_string(locales, "", "Comma separated locales to filter samples."); +DEFINE_string(mode, "clicked", + "Allowed values: 'all' - save all searchEmitResultAndCoords event as samples; " + "'clicked' - save only samples wits corresponding searchShowResult event, add results to samples."); struct EmitInfo { @@ -165,7 +168,7 @@ optional ParseResultWithCoords(string const & str) return res; } -optional MakeSample(EmitInfo const & info, size_t relevantPos) +optional MakeSample(EmitInfo const & info, optional relevantPos) { Sample sample; sample.m_query = MakeUniString(info.m_query); @@ -173,6 +176,9 @@ optional MakeSample(EmitInfo const & info, size_t relevantPos) sample.m_pos = info.m_pos; sample.m_viewport = info.m_viewport; sample.m_results.reserve(info.m_results.size()); + if (!relevantPos) + return sample; + for (size_t i = 0; i < info.m_results.size(); ++i) { auto res = ParseResultWithCoords(info.m_results[i]); @@ -186,6 +192,17 @@ optional MakeSample(EmitInfo const & info, size_t relevantPos) return sample; } +void PrintSample(EmitInfo const & info, optional relevantPos) +{ + auto const sample = MakeSample(info, relevantPos); + if (!sample) + return; + + string json; + Sample::SerializeToJSONLines({*sample}, json); + cout << json; +} + int main(int argc, char * argv[]) { google::SetUsageMessage("This tool converts events from Alohalytics to search samples."); @@ -198,6 +215,12 @@ int main(int argc, char * argv[]) return EXIT_FAILURE; } + if (FLAGS_mode != "all" && FLAGS_mode != "clicked") + { + LOG(LINFO, ("Invalid mode:", FLAGS_mode, "allowed walues are: 'all', 'clicked'.")); + return EXIT_FAILURE; + } + if (!FLAGS_data_path.empty()) { Platform & platform = GetPlatform(); @@ -246,6 +269,9 @@ int main(int argc, char * argv[]) { info = ParseEmitResultsAndCoords(kpe->pairs); newUser = false; + + if (FLAGS_mode == "all") + PrintSample(*info, {}); } else if (kpe->key == "searchShowResult" && !newUser) { @@ -267,12 +293,7 @@ int main(int argc, char * argv[]) if (!resultMatches) continue; - if (auto const sample = MakeSample(*info, result->m_pos)) - { - string json; - Sample::SerializeToJSONLines({*sample}, json); - cout << json; - } + PrintSample(*info, result->m_pos); } } return EXIT_SUCCESS;