tengo un gran conjunto de consultas y uso levenshtein para calcular errores tipográficos, ahora levenshtein hace que mysql tome el tiempo completo de la CPU. Mi consulta es una búsqueda de texto completo + levenshtein en una declaración UNION. sql1 es mi consulta actual, sql2 es solo búsqueda de texto completo que es rápida y no utiliza demasiado tiempo de CPU, ¡el último es el leventhein que alcanzará su pico!levenshtein alternative
¿Alguno de ustedes tiene una forma alternativa de obtener errores tipográficos también? No respondo datos de normalización, lo he pensado, pero no es aplicable a mis datos, ya que no puedo predefinir las coincidencias/cálculos y crear una tabla separada con índices.
$sql1 = "(SELECT * FROM ci_sanctions_properties WHERE prop_type='LASTNAME' AND prop_value!='' AND MATCH(prop_value) AGAINST ('+usama bin laden' IN BOOLEAN MODE)) UNION (SELECT s.* FROM (SELECT levenshtein(prop_value, 'usama bin laden') AS dist, sanction_id, prop_type, prop_value FROM ci_sanctions_properties WHERE prop_type='LASTNAME' AND prop_value!='') s WHERE dist < 3) ORDER BY sanction_id";
$sql2 = "SELECT * FROM ci_sanctions_properties WHERE prop_type='LASTNAME' AND prop_value!='' AND MATCH(prop_value) AGAINST ('+usama bin laden' IN BOOLEAN MODE) ORDER BY sanction_id";
$sql3 = "SELECT s.* FROM (SELECT levenshtein(prop_value, 'usama bin laden') AS dist, sanction_id, prop_type, prop_value FROM ci_sanctions_properties WHERE prop_type='LASTNAME' AND prop_value!='') s WHERE dist < 3";