Есть ли способ получить результаты заказа MySQL по тому, как близко они« звучат »в поисковом выражении?Сортировать по Soundex (или аналогичный) `Closeness`
Я пытаюсь заказать поля, содержащие пользовательские имена городов. Существуют вариации и орфографические ошибки, и я бы хотел показать «самые близкие» матчи наверху.
Я знаю, что soundex не может быть лучшим алгоритмом для этого, но если он (или другой метод) может быть разумным успешным, возможно, стоит выполнить сортировку, выполняемую базой данных.
Я смотрел на Левенштейна, если бы мне пришлось сортировать в коде. Похоже, он взвешивает реализацию * правильного * алгоритма в базе данных или использует тот же алгоритм, который уже доступен на кодовой стороне вещей. –
Если вы реализуете его как функцию MySql (ссылка в ответе), вы должны иметь возможность сделать это в своем SQL. Что-то вроде: SELECT CityName, Leven (CityName, compString) FROM City ORDER BY Leven (CityName, compString) –
@ Rinzler: Да, этому сообщению почти два года. Ссылки исчезают. В любом случае я нашел еще один пример реализации MySql и переделал. –