2012-02-23 3 views
1

Я хотел бы разрешить моему приложению искать имена и возвращать похожие имена. То есть если пользователь ищет Джона, Джонатан также должен быть возвращен.Sql Server Soundex Поиск по имени

Поиск в Soundex, похоже, не делает этого. Существуют ли какие-либо альтернативы, кроме хранения словаря связанных имен?

+0

Одна из возможностей может заключаться в том, чтобы обрезать слова на более короткую длину - в этом примере soundex обоих с четырьмя символами дает то же значение – kaj

+0

@KAJ Но это всего лишь один случай с этими конкретными именами. Я думаю, что это сводится к тому, что люди имеют больше информации о домене приложения, что базовые функции SQL не будут. – Yuck

+0

Следовательно, почему я не предлагал его в качестве ответа :-) – kaj

ответ

0

Вы должны посмотреть Левенштейна Редактировать Расстояние и искать строки с низким расстоянием редактирования по сравнению с целевой строкой.

Вот больше информации и реализации его для SQL Server

http://www.kodyaz.com/articles/fuzzy-string-matching-using-levenshtein-distance-sql-server.aspx


Редактировать расстояние показывает минимальное количество правок (символов делеции, замены или вставки), нужно сделать, чтобы строки в получите целевую строку.

Так, например, «apple» и «aple» будут иметь расстояние редактирования 1 (удаление «p»);

1

Нет, нет - потому что вы ищете интерпретацию сходства, а не аналогичную звучащую вещь. Сохранение альтернатив - это ваш единственный выбор.

 Смежные вопросы

  • Нет связанных вопросов^_^