For this Project 2 Search milestone, your project must maintain the functionality from the Project 1 Index project, as well as process multi-line multi-word query text files, conduct an exact search of each multi-word query line, rank the results using term frequency, and produce the results in a pretty JSON format.

TABLE OF CONTENTS


Prerequisites

You must complete the following assignments before beginning to work on this one:

Untitled

<aside> <img src="/icons/info-alternate_gray.svg" alt="/icons/info-alternate_gray.svg" width="40px" /> It is also strongly recommended that you wait until you have completed Project v1.2 Review before starting.

</aside>

Functionality

Your main method must be placed in a class named Driver and must process the following additional command-line arguments:

These are in addition to the command-line arguments from the previous Project v1.1 Tests assignment.

The command-line flag/value pairs may be provided in any order or not at all. Do not convert paths to absolute form when processing command-line input!

Output user-friendly error messages in the case of exceptions or invalid input. Under no circumstance should your main() method output a stack trace to the user!

Query Processing

Search queries will be provided in a multi-line text file with one multi-word search query per line. When processing this file, your query parsing code must normalize, stem, and optimize the queries as follows: