Необходимо написать очень простой поисковик по текстам документов. Данные хранятся в БД по желанию, поисковый индекс в эластике.
- Скопировать все на локалку -
git clone https://github.com/demka-test-tasks/notion_so
- Запустить сервис с помощью
docker-compose up -d
, подождать, пока postgres и elastic стартанут, fastapi даст ошибку, что нормально - Синхронизировать хранилища с .csv с помощью
python3 converter.py
в utils - Сделать рестарт решения с помощью
docker-compose stop && docker-compose up -d
- Проверить, все ли завелось через
docker ps
, если не завелось - дайте репорт в issue
- Осуществить поиск по тексту - GET http://127.0.0.1:8000/posts/search?text=привет
- Осуществить удаление по идентификатору - DELETE http://127.0.0.1:8000/posts/delete, в теле JSON вида: {"id" : 93}
Также развернуты контейнеры PgAdmin (host=postgres, password=postgres, user=postgres) и Kibana
Ссылка на тестовый массива данных: [csv]
id
- уникальный для каждого документа;rubrics
- массив рубрик;text
- текст документа;created_date
- дата создания документа.
id
- id из базы;text
- текст из структуры БД.
- сервис должен принимать на вход произвольный текстовый запрос, искать по тексту документа в индексе и возвращать первые 20 документов со всем полями БД, упорядоченные по дате создания;
- удалять документ из БД и индекса по полю
id
.
- любой python фреймворк кроме Django и DRF;
README
с гайдом по поднятию;docs.json
- документация к сервису в формате openapi.
- функциональные тесты;
- сервис работает в Docker;
- асинхронные вызовы.