1 год назад
История
Readme.md
Search Engine Project
Описание
Этот проект представляет собой простой многопоточный поисковый сервер, который использует инвертированный индекс для выполнения поиска по текстовым документам. Проект написан на C++ с использованием Google Test для тестирования и поддерживает многопоточность для повышения производительности.
Основные функции
- Индексирование документов: Чтение текстовых документов и построение обратного индекса.
- Поиск по запросам: Поиск релевантных документов на основе заданных запросов.
- Ограничение результатов: Настраиваемый лимит количества возвращаемых результатов для каждого запроса.
- Многопоточность: Обработка и чтение документов в отдельных потоках для повышения производительности.
- Тестирование: Использование Google Test для написания и выполнения юнит-тестов.
Структура проекта
- src/ - Исходный код проекта.
main.cpp
- Главный файл, содержащий точку входа в программу.SearchServer.cpp
- Реализация поискового сервера.InvertedIndex.cpp
- Реализация инвертированного индекса.ConverterJSON.cpp
- Реализация конвертера для работы с JSON файлами.
- include/ - Заголовочные файлы.
SearchServer.h
- Заголовок классаSearchServer
.InvertedIndex.h
- Заголовок классаInvertedIndex
.ConverterJSON.h
- Заголовок классаConverterJSON
.RelativeIndex.h
- Заголовок структурыRelativeIndex
.
- tests/ - Юнит-тесты, написанные с использованием Google Test.
test_main.cpp
- Файл с тестами для проверки функциональности классовSearchServer
иInvertedIndex
.
- CMakeLists.txt - Файлы конфигурации CMake для сборки проекта.
- config.json - Конфигурационный файл, содержащий пути к текстовым документам и параметры поиска.
- requests.json - Файл, содержащий запросы для поиска.
- answers.json - Файл, в который записываются результаты поиска.
Установка и запуск
Зависимости и требования
- C++17 или выше
- CMake 3.10 или выше
- Google Test
- JSON for Modern C++ (nlohmann/json)
Сборка проекта
-
Клонируйте репозиторий:
git clone https://gitflic.ru/project/nikmozg/project1.git cd project1
-
Создайте директорию для сборки (например build) и выполните сборку через CMake. Пример комманд для коммандной строки:
mkdir build cd build cmake .. cmake --build .
Запуск программы
После успешной сборки выполните запустите файл SearchEngine.exe из корневой директории проекта. Файлы config.json и requests.json должны находиться в одной директории с SearchEngine.exe. После выполнения поиска, ответы сохраняться в answers.json.
Запуск тестов
Чтобы выполнить тесты, запустите runTests.exe из папки tests
Конвейеры
0 успешных
0 с ошибкой