2008-10-29 8 views

Respuesta

7

La búsqueda difusa utiliza un enfoque de q-gram, dividiendo cadenas en pequeñas subcadenas e indexándolas. Luego puede buscar entradas dividiéndolas en cadenas de igual tamaño. Puede inspeccionar el formato de su índice y escribir una función CLR para usar el mismo estilo de índice, pero es posible que esté hablando de una buena porción de trabajo.

De hecho, es bastante interesante cómo lo hicieron, muy simple pero proporciona una coincidencia muy robusta y es muy configurable.

De eso recuerdo el índice la última vez que lo miré, cada q-gram o subcadena se almacena en una fila en una tabla (el índice). Esa fila contiene una columna nvarchar (entre otros valores) que se utiliza como datos binarios y contiene referencias a las filas que coinciden.

También hay una sugerencia de comentarios abierta en Microsoft Connect para esta función.

7

SQL Server tiene una función SOUNDEX():

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

verdad - se olvidó de esto. Pero no crea que va a funcionar para identificadores numéricos, digamos con dígitos transpuestos o algo así. – ScottStonehouse

+1

He encontrado que soundex es muy primitivo en el pasado, funciona pero su granularidad es muy tosca. Double Metaphone es una versión más nueva de la coincidencia fonética, pero todavía es limitante. – vfilby

1

El 5 de marzo 2009 I tendrá un artículo publicado en www.sqlservercentral.com con una muestra de Jaro-Winkler TSQL

+0

http://www.sqlservercentral.com/articles/65702/ – Brian

Cuestiones relacionadas