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)

Сборка проекта

  1. Клонируйте репозиторий:

    git clone https://gitflic.ru/project/nikmozg/project1.git
    cd project1
    
  2. Создайте директорию для сборки (например build) и выполните сборку через CMake. Пример комманд для коммандной строки:

    mkdir build
    cd build
    cmake ..
    cmake --build .
    

Запуск программы

После успешной сборки выполните запустите файл SearchEngine.exe из корневой директории проекта. Файлы config.json и requests.json должны находиться в одной директории с SearchEngine.exe. После выполнения поиска, ответы сохраняться в answers.json.

Запуск тестов

Чтобы выполнить тесты, запустите runTests.exe из папки tests

Конвейеры
0 успешных
0 с ошибкой