Web-crawler для сайта https://docs.python.org (или любого другого). Скачивание реализовано в нескольких параллельных корутинах для максимальной скорости обкачки. Скорость обкачки можно установить в settings.py. 100 RPS означает, что в секунду производится не более 100 запросов на домен. Каждая страница кладется в индекс elasticsearch.
/api - содержит api, использующее aiohttp, которое отдает результаты поиска.
/api/v1/search принимает параметры:
- q - текстовый запрос
- limit - количество результатов
- offset - офсет результатов. Ссылки в результате отсортированы по релевантности