Проект «Full-text search»
Ваша задача — в течение семестра реализовать систему полнотекстового поиска.
В качестве источника документов будем использовать базу книг: books.csv.
Проект должен состоять из следующих компонентов:
Ядро. Библиотека или несколько библиотек на языке С++, в которых реализована индексация, поиск и ранжирование документов.
Консольные утилиты для использования библиотеки (С++).
Обертка на языке С для кроссязыкового использования библиотеки.
Клиент для поиска, написанный на высокоуровневом языке программирования на ваш выбор: Python, Go, PHP, Java, … При выборе найдите инструменты для вызова функций, написанных на C. Ключевое слово для поиска: FFI.
Вся функциональность должна быть покрыта unit-тестами.
При разработке проекта:
Код пишется на C++17.
Используется система сборки CMake.
Исходники хранятся в git-репозитории. Процесс ведется с соблюдением A simple git branching model .
Код автоматически форматируется с помощью
clang-format.При сборке код проходит проверки
clang-tidy.
Демо:
Выдача перестраивается при уточнении запроса.
Поиск способен обрабатывать запросы с опечатками.