Соответствие строкового образца для Limited, Ltd, Incorporated, Inc, и т. Д. - PullRequest
3 голосов
/ 20 января 2011

Мы проводим МНОГО работы по согласованию около 1000 дублированных названий производителей и 1 000 000 дублированных номеров деталей.Одна вещь, которая подошла, - это как «сопоставить» такие вещи, как «Limited» и «Ltd.»vs. "Ltd"

Цель состоит в том, чтобы приложение согласовало эти сопоставленные элементы в стандартном формате.Итак:

ACME Ltd. ACME Limited ACME Ltd

Должны ли все быть согласованы с ACME Ltd.

Это также будет использоваться для предотвращения ввода дополнительных дубликатов в будущем.

Есть предложения о том, как выполнить сопоставление с этим шаблоном в SQL Server?Любые известные алгоритмы для поиска элементов с сопоставленными эквивалентами и т. Д.?

Спасибо!

Эрик.

Ответы [ 2 ]

3 голосов
/ 20 января 2011

Как насчет таблицы, в которой указано, что вы хотите в одном столбце, а варианты - в следующем?

Ltd   Limited 
Ltd   Ltd.
St    Street
St    Str.

Затем, если вы найдете совпадение во втором столбце, вы измените его на первый.Это может занять несколько итераций, поскольку вы найдете другие альтернативы.

2 голосов
/ 20 января 2011

Используя Полнотекстовый поиск SQL Server вы можете использовать синонимы:

Для каждого полнотекстового языка SQL Server также предоставляет файл, в котором вы можете по желанию определить язык-конкретные синонимы для расширения области поисковых запросов (файл тезауруса).

В вашем случае вы можете добавить раздел, подобный следующему:

 <expansion>
         <sub>Limited</sub>
         <sub>Ltd</sub>
         <sub>Ltd.</sub>
 </expansion>

Вотссылка , в которой более подробно рассказывается о том, как изменить файл тезауруса.Это может работать для того, что вы пытаетесь сделать ...

SQL Server также предлагает ограниченное сопоставление с шаблоном с помощью LIKE.Я бы порекомендовал просмотреть варианты , которые он предлагает, чтобы увидеть, будут ли они достаточными для ваших нужд.

Если LIKE недостаточно, вы всегда можете посмотреть на создание хранимой CLRПроцедура или UDF , которые позволят вам использовать регулярные выражения.Это позволит вам соответствовать гораздо более сложным шаблонам ...

...