Программа представляет из себя консольное приложение, осуществляющяя поиск и имеющее возможность настройки через файлы формата JSON. Применённые в нём решения можно впоследствии встроить в поисковую программу работающую на веб.
Реализованы следующие принципы работы:
- В конфигурационном файле перед запуском приложения задаются названия файлов, по которым программа будет осуществлять поиск.
- Программа самостоятельно обходит все файлы и индексирует их так, чтобы потом по любому поисковому запросу находить наиболее релевантные документы.
- Пользователь задаёт запрос через JSON-файл requests.json. Запрос — это набор слов, по которым нужно найти документы.
- Запрос трансформируется в список слов.
- В индексе ищутся те документы, на которых встречаются все эти слова.
- Результаты поиска ранжируются, сортируются и отдаются пользователю, максимальное количество возможных документов в ответе задаётся в конфигурационном файле.
- В конце программа формирует файл answers.json, в который записывает результаты поиска.
{
"config":
{
"name": "SkillboxSearchEngine",
"version": "0.1",
"max_responses": 5
},
"files":
[
"../resources/file001.txt",
"../resources/file002.txt",
"../resources/file003.txt",
"../resources/file004.txt",
]
}
config — общая информация
name — поле с названием поискового движка
version — поле с номером версии поискового движка.
max_responses — поле, определяющее максимальное количество ответов на один запрос.
files - содержит пути к файлам, по которым необходимо осуществлять поиск.
Внутри списка files лежат пути к файлам.
Впоследствии по его содержимому необходимо совершить поиск.
Cодержит запросы, которые необходимо обработать поисковому движку.
Пример описания файла requests.json:
{
"requests": [
"some words..",
"some words..",
"some words..",
"some words..",
…
]
}
“some words” — поисковый запрос, набор слов, разделённых одним или несколькими пробелами.
По ним осуществляется поиск.
- Создайте директорию SearchEngine
- Cкопируйте в нее SearchEngine.zip и распакуйте ее.
- Выполните процедуру компановки (компиляция и линковка) в соответствии с вашей операционной системой.
- Сформируйте файл запросов(requests.json) в соответствии со стандартами json. (Запросы, помещенные в " " разделены пробелами)
- Поместите в директорию resources набор файлов в который будут происходить поиск по запросам в requests.json
- Сформируйте файл config.json в котором в разделе "files:" перечислите имена файлов их директории resources