Muchachos, soy algo nuevo en la parte de Base de datos y queria solicitarles orientación de como vengo haciendo las cosas.
Les comento mi situación:
Estoy realizando una búsqueda por frase en mi sitio, por el momento estoy haciendo las búsquedas por medio del: título, descripción de los temas y por medio de palabras clave que ya estan en la base de datos por medio de Wildcards (encerrando las frases con "%" ), se que no es para nada semántico y poco fiable. Por eso mi consulta, como logro mayor alcance en mis búsquedas y que sean mas semánticas?
El script con el que trabajo por ahora es el siguiente:
ANTES DE HACER LA BÚSQUEDA REMUEVO LOS ESPACIOS Y LOS REEMPLAZO CON %
$frase = str_replace(" ", "%", $frase);
Código:
Saludos muchachos! SELECT i.codigo_investigacion, i.titulo,m.nombre AS materia,t.nombre AS tema,cast(i.fecha as date),i.path ,i.palabras_claves,i.resumen FROM scc_investigaciones i INNER JOIN scc_materias m ON m.codigo_materia = i.codigo_materia INNER JOIN scc_temas t ON t.codigo_tema = i.codigo_tema WHERE (translate(lower(i.palabras_claves), 'áéíóúñÁÉÍÓÚÑ', 'aeiounaeioun') ILIKE '%" . $frase . "%' OR translate(lower(i.titulo), 'áéíóúñÁÉÍÓÚÑ', 'aeiounaeioun') ILIKE '%" . $frase . "%') AND (i.estado <>3) ORDER BY i.fecha DESC