- Консольное приложение.
- Обходит все файлы по определенной директории рекурсивно
- Осуществляет подготовку инвертированного индекса
- Консольное приложение, взаимодействие с пользователем через стандартные потоки ввода и вывода
- Осуществляет поиск по построенному индексу
- Ранжирует найденные документы согласно BM25
- Выдаёт в качестве результат список файлов с номерами строк где встречается данное слово
- Поддерживает синтаксис запросов с 'AND' и 'OR'
- Некорректный запрос приводит к выводу ошибки
- Поиск регистронезависимый
Должен поддерживает скобки а также операции AND и OR (регистр имеет значение). Таким образом в качестве запроса выступают логические выражения. Разделитель между словами - пробел(ы)
Следующие запросы считаются корректными
- "for"
- "vector OR list"
- "vector AND list"
- "(for)"
- "(vector OR list)"
- "(vector AND list)"
- "(while OR for) and vector"
- "for AND and"
Некорректными запросами считаются
- "for AND"
- "vector list"
- "for AND OR list"
- "vector Or list"