Задать вопрос

Можно ли реализовать нечеткий поиск слов на MySQL?

Здравствуйте! Стоит задача сделать выборку из таблицы строк, в которых 2-3 буквы могут отличаться от критерия поиска. Например, пользователь вводит "Москвва", бд должна не смотря на ошибку найти все строки где есть слово "Москва".
  • Вопрос задан
  • 3258 просмотров
Подписаться 10 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    SQL для разработки
    4 месяца
    Далее
  • Академия Eduson
    SQL-разработчик: тариф Базовый
    3 месяца
    Далее
  • Stepik
    SQL с нуля до PRO
    2 недели
    Далее
Решения вопроса 1
2ord
@2ord
Согласно описанию задачи достаточно использовать расстояние Левенштейна как метрику для сравнения.
Википедия
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Stalker_RED
@Stalker_RED
Из коробки есть SOUNDEX() (тыц, тыц) но он дружит только с английским, насколько я помню.

Можно написать хранимую процедуру для работы с расстоянием левенштейна, например.

Ну а если все по серьезному, то Sphinx.
Ответ написан
Комментировать
eastywest
@eastywest
Backend developer
Посмотрите с сторону Sphinx, в нем есть возможность в качесте источника использовать уже существующие данные из MySQL.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Если совсем по-серьёзному - Stumper API (бесплатный).
Можно протестировать поиск здесь на своих данных.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы