А теперь начинается самое интересное - работа над тудушником.
Полнотекстовый поиск
Я буду работать с текстом. И неплохо бы иметь систему полнотекствого поиска. Она нужна мне по следующим причинам:
- Если название задачи, проекта введено пользователем с опечаткой, то мы всё равно в большинстве случаев сможем найти, что пользователь имел в виду
- Название задачи может быть длиным и каждый раз писать его не хочется. Неплохо было бы иметь возможность писать начало названия, и однозначно находить задачу или проект
Покапав немного интернет, нашел всего пару решений: ElasticSearch и MeiliSearch. Эластик, конечно, мощный, но слишком. И для моих задач не подходит ввиду избыточности. А вот Meili очень даже ничего, запускается быстро, имеет простое API и полностью, на первый взгляд, отвечает моим требованиям.
К недостаткам можно отнести, что нет асинхронной библиотеки для работы с Meili. Поэтому буду писать свою.
Роут для инициализации
Когда пользователь входит в чат с ботом первый раз, он нажимает кнопку старт. Боту отправляется команда и он отвечает. При этом можно выполнить необходимые действия для регистрации пользователя.
На текущем этапе для пользователя необходимо будет создать несколько проектов, которые используются в Джедайских техниках. Это Входящие
, Сегодня
, Когда-нибудь
и Позже
.
Поэтому нам необходим URI для инициализации пользователя, на который мы будем принимать ID пользователя и проводить необходимые действия, а именно:
*. Добавить в базу 4 проекта и получить их _id *. Добавить в Meili 4 записи с _id проектов, их оригинальными названиями и названия в нижнем регистре.