2008-10-29 5 views

ответ

7

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

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

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

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

7

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

SELECT * 
FROM Customers 
WHERE SOUNDEX(Lastname) = SOUNDEX('Stonehouse') 
AND SOUNDEX(Firstname) = SOUNDEX('Scott') 
+0

True - забыл об этом. Но не думайте, что будет работать с числовыми идентификаторами, скажем, с транспонированными цифрами или что-то в этом роде. – ScottStonehouse 2008-10-29 17:53:53

+1

Я нашел soundex очень примитивным в прошлом, он работает, но его зернистость очень грубая. Double Metaphone - новая версия фонетического соответствия, но она все еще ограничена. – vfilby 2008-10-29 22:26:32

1

5 марта 2009 года у меня будет статья размещена на www.sqlservercentral.com с образцом Яро-Винклер TSQL

 Смежные вопросы

  • Нет связанных вопросов^_^