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

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

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

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

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

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

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