From 47fef340a6aec6c4117b1270502df8ac2c8998b1 Mon Sep 17 00:00:00 2001 From: Jidong Xiao Date: Tue, 17 Oct 2023 16:50:07 -0400 Subject: [PATCH] adding the no match case --- hws/06_search_engine/README.md | 18 +++++++++++++++++- hws/06_search_engine/images/no_match.png | Bin 0 -> 26619 bytes 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 hws/06_search_engine/images/no_match.png diff --git a/hws/06_search_engine/README.md b/hws/06_search_engine/README.md index 2020f77..78ce10c 100644 --- a/hws/06_search_engine/README.md +++ b/hws/06_search_engine/README.md @@ -83,13 +83,29 @@ Based on Rule 1 and Rule 2: when the search query is *Tom Cruise*, the third pag More rules will be added here. +## Supported Commands + ## Input Files To be added. ### Output File Format and Order -To be added. +The output of your program should go to the output file. + +- If no matches can be found for a search query, your search engine should print the following message to the output file. + +```console +Your search - dsdwoddjojdjeokdddfjwoewojo - did not match any documents. +``` + +Replace *dsdwoddjojdjeokdddfjwoewojo* with the search query. + +This behavior matches with what Google does. + +![alt text](images/no_match.png "no match") + +- If matches are found, to be added here. ## Program Requirements & Submission Details In this assignment, you are required to use std::map, and std::set, you are NOT allowed to use any data structures we have not learned so far, but feel free to use data structures we have already learned, such as std::string, std::vector, std::list. In addition, **the web crawler component of your program must be recursive**. diff --git a/hws/06_search_engine/images/no_match.png b/hws/06_search_engine/images/no_match.png new file mode 100644 index 0000000000000000000000000000000000000000..90c2e42430fe4bb987a1790b719827a77aba334e GIT binary patch literal 26619 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 literal 0 HcmV?d00001