Estoy tratando de construir mi propio motor de búsqueda con MySQL. Obtiene un texto como "Stackoverflow+MySQL+SearchEngine", lo divide en una matriz [Stackoverflow,MySQL,SearchEngine] y alimenta a MySQL como se muestra a continuación:
var text = filter.split("+"); var sql_statement = ' (title LIKE "%'+text[0]+'%" OR detail1 LIKE "%'+text[0]+'%") '; for(var i = 1; i < text.length; i++){ sql_statement += ' AND (title LIKE "%'+text[i]+'%" OR detail1 LIKE "%'+text[i]+'%") '; } pool.query('SELECT thread_id,username,date,price,title FROM threads_mphp WHERE'+sql_statement+'ORDER BY thread_id DESC LIMIT ?, ?',[startLimit,amount], function(error,results,fields){});La base de datos verifica si esas palabras existen en "título" o "detalle1". El problema es que solo funciona hasta 3 palabras con orden independiente. Si uso más palabras y orden aleatorio, no encontrará el resultado en la base de datos. ¿Estoy haciendo algo mal?
Ejemplo: Elemento de la base de datos Título: "Primera pregunta en Biología". Cadenas que encontrarán este elemento: "biografía", "pregunta de biología", "primera pregunta en biografía", "biografía primero". Cadenas que no encontrarán este elemento: "Biología en cuestión primero", "pregunta de biología primero"