Как я могу написать поиск MySQL, который может компенсировать данные с ошибками?

Есть ли способ написать поиск MySQL, который может компенсировать ошибки пользователя в орфографии и т. П.?

В качестве случайных примеров кто-то может ввести foo@gmial.com вместо foo@gmail.com.

Даже помощь с поисковыми запросами, чтобы помочь поднять релевантные данные от Google, будет полезна. Я не ищу поисковую систему, скажем, то, что я ищу, – это какая-то орфографическая помощь для административной панели управления.

Тема, которую вы вникаете, называется «Нечеткий поиск». Это большая кроличья дыра, чтобы спрыгнуть вниз, в зависимости от того, насколько точно вы хотели бы получить. Существуют различные методы, такие как:

  • Саундэкс
  • Расстояние Дамерау-Левенштейн
  • Расстояние Яро-Винклер
  • метафон
  • двойной метафон

Некоторые ссылки для проверки:

  • Нечеткий поиск PHP / MySQL
  • http://en.wikipedia.org/wiki/Approximate_string_matching
  • Как сделать нечеткое совпадение имен компаний в MYSQL с PHP для автоматического заполнения?
  • Реализация расстояния Левенштейна для mysql / нечеткого поиска?

Есть много способов сделать то же самое. Один из лично мне нравится SOUNDS LIKE .

Оформить заказ SOUNDEX .