SELECT * FROM name WHERE
en_title LIKE %что-то%
OR ru_title LIKE %что-то%
совсем не подходит. Нужен поиск умнее, который может учитывать частичные совпадения и ранжировать соответственно результаты. Например, неграмотный пользователь пишет запрос: "велосепед" такого слова в БД нет, соответственно при поиске влоб пользователь получит ответ, что ничего не найдено. Но слово "велосипед" в БД есть и даже при неправильном запросе, но близком к этому слову пользователь должен получить релевантный результат. Кроме того, необходимо учитывать разные словоформы одного слова. Подскажите готовые решения или пути. Спасибо.
Спустя 24 минуты, 35 секунд (10.08.2011 - 10:41) neadekvat написал(а):
http://habrahabr.ru/blogs/algorithm/105450/
Правда, изображения там уже мертвые. Но по крайней мере слово "спеллчекер" узнаешь.
Правда, изображения там уже мертвые. Но по крайней мере слово "спеллчекер" узнаешь.
Спустя 4 минуты, 28 секунд (10.08.2011 - 10:45) Invis1ble написал(а):
почитай про
однако, там используются далекие от совершенства алгоритмы (и они делались с упором на латинницу), если очень нужно - можешь разработать свой алгоритм кодирования :)
SOUND LIKE
SOUNDEX()
soundex()
однако, там используются далекие от совершенства алгоритмы (и они делались с упором на латинницу), если очень нужно - можешь разработать свой алгоритм кодирования :)