Как реализовать неточный поиск для чат бота-телеграм?
Добрый день, собственно сабж, есть поисковой чат бот, который по запросу выдает листинг с промокодами для магазинов. Проблема - много запросов, которых нет в словаре. Соотвественно в 7 из 10 случаев поиск заканчивается неудачей.
Сейчас в качестве неточного поиска реализован алгоритм ливенштейна (поверх mysql), которые в виде клавиатурных кнопок выдает рекомендации при ошибочном запросе. Но во многих случаях он также работает не очень хорошо, а именно:
- Работает с очень большой задержкой (приходится ждать около 10 секунд выдачи рекомендации)
- Неправильное ранжирование (выдает максимально релевантный вариант в самом низу рекомендаций)
- Очень плохо работает с русским словами. (при минимальных ошибках редко выдает правильную рекомендацию)
- Очень плохо работает с короткими словами (например ozon)
Подскажите что нужно использовать чтобы реализовать качественный неточный поиск? Максимально благодарен за любые советы!