Dadas sus datos almacenados en algún lugar de una base de datos:SQL - buscar base de datos con el operador LIKE
Hello my name is Tom I like dinosaurs to talk about SQL.
SQL is amazing. I really like SQL.
queremos poner en práctica una búsqueda en el sitio, lo que permite a los visitantes entrar términos y devuelven los registros relacionados. Un usuario podría buscar:
Dinosaurs
Y el SQL:
WHERE articleBody LIKE '%Dinosaurs%'
Copes bien con devolver el conjunto correcto de registros.
¿Cómo podríamos hacer frente sin embargo, si un usuario se equivoca al escribir dinosaurios? IE:
Dinosores
(Poor sore dino). ¿Cómo podemos buscar permitiendo error en la ortografía? Podemos asociar faltas de ortografía comunes que vemos en la búsqueda con la ortografía correcta, y luego buscar en los términos originales + términos corregidos, pero esto lleva mucho tiempo mantener.
¿Alguna manera programáticamente?
Editar
Aparece SOUNDEX podría ayudar, pero ¿alguien puede darme un ejemplo usando soundex donde entra en el término de búsqueda:
Dinosores wrocks
devuelve registros en lugar de hacerlo:
WHERE articleBody LIKE '%Dinosaurs%' OR articleBody LIKE '%Wrocks%'
que devolvería squadoosh?
distancia levenshtein o Soundex –
Dependiendo de la base de datos que está utilizando ... hay funciones "soundex" que se pueden utilizar para obtener una "coincidencia" en palabras ese sonido por igual ... –
No creo que esto se pueda hacer puramente en SQL. Las búsquedas con comodines ya son lentas. Prefiero usar un producto terminado como Apache Lucene o Solr. – Wukerplank