Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/06/2008, 08:07
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: ¿Cómo se usa Soundex?

Como imagino que ya has leído bastante sobre el tema, más allá de lo que dice la wikipedia sobre las reglas, y estarás al tanto de los problemas de soundex en MySQL: que está pensado para el inglés; y que no funciona con codificación utf-8, sólo te daré alguna información práctica. También sabrás que existen otros algoritmos fonéticos más evolucionados, como metaphone, pero del que no se sirve, que yo sepa, MySQL.
Vamos a un ejemplo práctico:
en un formulario para búsquedas el cliente escribe casi de cualquier manera: se confunden vocales, se escriben mal consonantes, se hace una escritura fonética, etc. Pues bien, para resolver problemas como ese se podría usar soundex, si hiciera su trabajo para nuestra lengua o lenguas como lo hace para el inglés.
imaginemos que alguien quiere buscar 'paco' pero escribe por error o confusión 'pago', 'paso', 'pazo' o 'pajo'.
Una sintaxis de consulta sobre una tabla donde escribes en el campo nombre el nombre tal como esta:

SELECT nombre FROM `tutabla` WHERE soundex( 'pazo' ) = soundex( nombre )

te encontraría 'paco'; y, si tuvieras pago, paso, pazo, etc. también. Naturalmente, en lugar de 'pazo' estaría la variable de búsqueda traída del formulario.
Si analizas los resultados con unas pocas pruebas o estudiando las reglas del algoritmo soundex, podrás hacer consultas muy variadas para controlar errores o confusiones (por ej., la b y la v, si no se trata de inicial, tienen el mismo valor). Muchos de los programas en los que al escribir una palabra mal se te muestra la palabra que probablemente buscabas funcionan con algoritmos fonéticos como soundex, levensthein, metaphone, etc. Pero eso que nos lo digan los técnicos.
Finalmente, si manejas otros programas podrías recurrir a metaphone, de la que creo que existen scripts adaptados a lenguas distintas del inglés.
Probablemente ya sabías todo esto, pero por si acaso... y sirve de orientación.

Última edición por jurena; 20/06/2008 a las 09:31