Полнотекстовый поиск с возможными ошибками в запросе

vovaxxx

Здравствуйте, стоит задача реализовать полнотекстовый поиск по сайту. К примеру в базе данных имеется таблица products, в ней поля title, description, image. Как реализовать поиск, чтобы он искал по ключевым словам, например "Визитки" "Везитки" "Визиктки", т.е. если пользователь ввел запрос с ошибкой, ему все равно выдало нужный результат. Заранее спасибо.

1 ответ

vovaxxx

Вам нужен фонетический поиск. Вот реализация на php и статья о нем на Хабре

Там есть функция, преобразующая слова в фонетический код:

dmstring('Арнольд Шварцнеггер') //== 096830 479465
dmstring('Орнольд Шворцнегир') //== 096830 479465

Получаете код и заносите его в БД в отдельное поле.

Затем при поиске кодируйте поисковый запрос с помощью этой-же функции и ищите по полю с фонетическими кодами.

licensed under cc by-sa 3.0 with attribution.