sql >> Base de Datos >  >> RDS >> Mysql

alternativa levenshtein

Si está atado solo a MySQL, no hay una solución fácil.

Por lo general, esto se resuelve utilizando la indexación de ngram especializada para el filtrado rápido de búsqueda de candidatos y luego calculando la levensthein solo en 10-50 candidatos, que es más rápido que calcular la levensthein para todos los pares.

Los motores de búsqueda de texto completo especializados como Solr/Lucene tienen esto integrado.

PostgreSQL tiene el módulo de contribución pg_trgm (http://www.postgresql.org/docs/9.0/static/pgtrgm.html) que funciona de maravilla.

Incluso puede simular esto en MySQL utilizando la indexación de texto completo, pero debe recopilar palabras de todos sus documentos, convertirlas en ngrams, crear índices de texto completo en ellos y piratearlos todos juntos para una búsqueda rápida. Lo que trae todo tipo de problemas con la redundancia, la sincronización... no vale la pena.