Actualmente estoy usando similar_text para comparar una cadena con una lista de ~ 50,000 que funciona aunque debido a la cantidad de comparaciones es muy lenta. Toma alrededor de 11 minutos comparar ~ 500 cadenas únicas.Acelerando levenshtein/similar_text en PHP
Antes de ejecutar esto, compruebo las bases de datos para ver si se ha procesado en el pasado, por lo que cada vez que se ejecuta de manera inme- diata es casi instantánea.
Estoy seguro de que el uso de levenshtein sería un poco más rápido y la función de LevenshteinDistance que alguien publique en el manual parece interesante. ¿Me estoy perdiendo algo que podría hacer esto significativamente más rápido?
'O (N ** 3)' donde N es la longitud de la cadena más larga para 'similar_text' ... ouch. – jason
¿Cuál es la longitud promedio de las cadenas? Aaandd ... ¿cuántos de los datos en la cadena son realmente relevantes para la búsqueda? es decir, ¿cuánto es simplemente cruft? – jason
La longitud promedio es de alrededor de 20 caracteres y un alto porcentaje de los datos es relevante, quizás un 85-95%. Creo que tal vez usar estos son un poco exagerados y probablemente podría usar una búsqueda de texto completo en mysql seguido de algunos controles. – DanCake