Хорошая стратегия SQL для нечеткого сопоставления возможных дубликатов с использованием SQL Server 2005 - PullRequest
2 голосов
/ 13 ноября 2009

Я хочу найти возможные повторяющиеся записи-кандидаты в большой базе данных, соответствующие таким полям, как COMPANYNAME и ADDRESSLINE1

Пример:

Для записи со следующим ИМЯ КОМПАНИИ:

  • "Акме, Инк."

Я бы хотел, чтобы мой запрос выдавал другие записи с такими значениями COMPANYNAME, как возможные ошибки:

  • "Acme Corporation"
  • "Акме, Инкорпорейтед"
  • "Acme"

Я знаю, как выполнять объединения, коррелированные подзапросы и т. Д., Чтобы выполнять механику извлечения набора данных, который я хочу. И я знаю, что здесь уже упоминалось. Мне интересно услышать мысли о лучшем способе нечеткого поиска - следует ли мне использовать полнотекстовое индексирование или функцию soundex или что-то еще, что мне неизвестно для этого процесса? (Я использую SQL Server 2005)

Любая помощь приветствуется!

Ответы [ 3 ]

2 голосов
/ 13 ноября 2009

Конечно, это будет зависеть от ваших точных требований, но использование CONTAINS в вашем SQL дает вам возможность выполнять поиск по близости, а также тематический и нечеткий поиск.

http://www.developer.com/db/article.php/3446891/Understanding-SQL-Server-Full-Text-Indexing.htm

http://msdn.microsoft.com/en-us/library/ms187787(SQL.90).aspx

1 голос
/ 13 ноября 2009

Я бы рекомендовал использовать задачу SSIS для периодической очистки данных. В SSIS есть операторы нечеткого соответствия, и есть сторонние поставщики, которые предлагают более мощные компоненты. Некоторые статьи по теме:

Если бюджет позволяет и размер операции того стоит, вы даже можете рассмотреть сервер MDS: Службы основных данных SQL Server 2008 R2 .

0 голосов
/ 31 декабря 2009

Также доступен новый инструментарий качества данных служб SSIS по адресу http://www.melissadata.com/dqt/total-data-quality-integration.htm

...