Функция SoundEx в SQL Server для нелатинских наборов символов? - PullRequest
1 голос
/ 18 ноября 2008

Работает ли функция SQL Server (2000) Soundex для азиатских наборов символов ? Я использовал его в запросе, и он, кажется, не работал должным образом, но я понимаю, что это может быть потому, что я не знаю, как читать по-китайски ...

Кроме того, есть ли другие языки, на которых функция может иметь проблемы при работе? (Русский например)

Спасибо,
Фрэнк

Ответы [ 3 ]

2 голосов
/ 18 ноября 2008

Я знаю, что soundex в более старых версиях SQLServer игнорировал любые неанглийские символы. Я полагаю, что он даже не работал с Latin-1, не говоря уже о чем-нибудь более экзотическом.

Я никогда не имел дело с soundex в SQL2k, все, что я точно знаю, это то, что он неправильно обрабатывает арабский язык. Это, вероятно, распространяется и на другие нелатинские наборы символов.

В любом случае алгоритм на основе soundex вряд ли даст приемлемые результаты для неанглийских языков, даже если не учитывать проблемы с набором символов. Soundex был специально разработан для обработки английского произношения имен (в основном, западноевропейского происхождения) и не особенно хорошо работает за пределами этого использования. Вам часто было бы лучше исследовать любой из нескольких вариантов soundex или других не связанных между собой алгоритмов фонетического сходства, которые разработаны с учетом рассматриваемого языка (языков).

2 голосов
/ 18 ноября 2008

Soundex довольно специфичен для английского языка - он может или не может хорошо работать на других языках. Одним из примеров, произошедших в Новой Зеландии, была попытка сопоставления имен пациентов с использованием Soundex. К сожалению, названия островов Тихого океана не очень хорошо работали с Soundex, во многих случаях хешируя один и тот же небольшой набор значений. Нужно было использовать другой алгоритм.

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

2 голосов
/ 18 ноября 2008

По своему дизайну лучше всего подходит для английских предложений с использованием набора символов ASCII. Я использовал его в проекте в Румынии, где я заменил румынские специальные символы соответствующими символами ASCII, которые звучат более или менее одинаково. Это не идеально, но в моем случае это было намного лучше, чем ничего.

Я думаю, что вы не добьетесь большого успеха в применении SOUNDEX для азиатских наборов символов.

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