Это очень простой поисковик по текстам документов. Данные хранятся в БД SQLite, поисковый индекс в эластике.
Тестовый массив данных: posts.csv
id
- уникальный для каждого документа;rubrics
- массив рубрик;text
- текст документа;created_date
- дата создания документа.
iD
- id из базы;text
- текст из структуры БД.
-
сервис принимает на вход произвольный текстовый запрос, ищет по тексту документа в индексе и возвращает первые 20 документов со всем полями БД, упорядоченные по дате создания; Формат запроса: http://127.0.0.1:8000/posts/search?text=текст Возвращается массив результатов в виде: [ { "id": int, "text": string, "created_date": string, "rubrics": [string, string, ...] }, ... ]
-
удаляет документ из БД и индекса по полю
id
. Формат запроса: http://127.0.0.1:8000/posts/delete/0 , где 0 - удаляемый id. Возвращает "Ок", если удаление прошло успешно и 'ID не найден!', если нет.
Запуск контейнера производится скриптом setup.bat, а останавливается скриптом stop.bat Перед первым запуском необходимо включить vpn, так как будет скачиваться образ Elasticsearch 7.17.7.
При замене csv файла после запуска необходимо выполнить 'python write_db.py [НАЗВАНИЕ НОВОГО ФАЙЛА]' в консоли и перезапустить сервис.