Можно ли выполнить нечеткий поиск T-SQL без SSIS? - PullRequest
9 голосов
/ 29 октября 2008

SSIS 2005/2008 выполняет нечеткие поиски и группировки. Есть ли функция, которая делает то же самое в T-SQL?

Ответы [ 4 ]

7 голосов
/ 30 октября 2008

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

На самом деле довольно интересно, как они это сделали, очень просто, но обеспечивает очень надежное сопоставление и легко настраивается.

Из того, что я вспоминаю об индексе, когда я последний раз смотрел его, каждая q-грамм или подстрока сохраняется в строке таблицы (индекса). Эта строка содержит столбец nvarchar (среди других значений), который используется в качестве двоичных данных и содержит ссылки на соответствующие строки.

Существует также предложение открытой обратной связи на Microsoft Connect для этой функции.

7 голосов
/ 29 октября 2008

SQL Server имеет функцию SOUNDEX ():

SELECT * 
FROM Customers
WHERE SOUNDEX(Lastname) = SOUNDEX('Stonehouse')
AND SOUNDEX(Firstname) = SOUNDEX('Scott')
3 голосов
/ 29 октября 2008

Полнотекстовый поиск - отличный нечеткий инструмент. Краткое руководство здесь

1 голос
/ 21 февраля 2009

5 марта 2009 г. на www.sqlservercentral.com будет опубликована статья с образцом Jaro-Winkler TSQL

...