Sql Server Soundex Имя поиска - найти сокращенную форму имени - PullRequest
2 голосов
/ 23 февраля 2012

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

Поиск в Soundex, похоже, не делает этого.Есть ли альтернативы, кроме хранения словаря связанных имен?

Ответы [ 2 ]

1 голос
/ 23 февраля 2012

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

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

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


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

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

Стороннее редактирование

Код от kodyaz.com указывает на сообщение от Арнольда Фриббла на sqlteam.com / forums Вы можете найти код в этот вопрос от 2009

1 голос
/ 23 февраля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...