Ver Mensaje Individual
  #2  
Antiguo 11-03-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Reputación: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
No estoy seguro de si la BD que estes usando implemente algoritmos que comparan strings por distancia

Si lo podes implementar bajo codigo Delphi, quiza esto te sirva de ayuda: DelphiStringDistance

Si lo queres implementar por SQL, tendrias que leer sobre este tipo de algoritmos y ver si tu DB tiene algo similar o sino implementar una UDF o un Stored Procedure

La idea estos algoritmos es que comparas dos string, eso te devuelve un entero, que es la "distancia". La distancia es la cantidad de operaciones que se requieren para que el string A se convierta en string B. Distintos algoritmos calcularan diferentes distancias, pues asignan a las distintas operaciones (agregar/quitar/intercambiar caracter) un "peso" distinto

Si ves estos test creo que queda mas claro de lo que hablo. Por ejemplo, usando el Algoritmo de Levenshtein, la comparacion "Casa" vs "Calle" da resultado 3.

En tu caso deberias listar solo los elementos con una distancia menor o igual a 1, esto permite una "tolerancia" de un caracter

Última edición por AgustinOrtu fecha: 11-03-2017 a las 06:31:36.
Responder Con Cita