Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Supongo al lector familiarizado con la programación en php y la administración básica
de Mysql.
os tipos de los campos a buscar deberán ser 3AR, VAR3AR o TEXT con
sus variantes.
2. Ahora diseñaremos una página con un formulario y una caja de texto para
escribir la cadena de consulta " " y llamar al script de búsqueda
" ". Ejemplo:
Pues esta consulta nos mostrará todos los artículos que en su titulo o en su
contenido aparezca la frase de búsqueda tal y como nosotros la introducimos.
Esto es muy limitado ya que un cambio en el orden de las palabras o un artículo
de separación dará al traste con nuestra búsqueda no mostrando los resultados
deseados.
Si bien podríamos depurar y mejorar la sintaxis de nuestra búsqueda utilizando
el operador IKE las búsquedas resultarían muy lentas y no tendrían el resultado
esperado.
Esta línea utiliza la función MAT3 ... AGAINST ... que encuentra el texto
buscado, usando consultas en lenguaje natural parecido a como lo hacen los
motores de búsqueda. Además, se calcula internamente una puntuación en
función de como aparecen los términos buscados dentro de nuestro artículo.
ace mucho que no hago un post para programadores, pero hoy vuelvo y con un poco
de SQ que muchos no tienen tan claro...
Para el que le interese hacer un buscador en MySQ hay una herramienta que tienen en
todos sus MySQ y que pocos usan.
a maldita costumbre del "ike" hace que se olviden de usar índices y full text search,
acá les dejo un poco como es la idea.
Si tenemos una tabla con nuestras noticias donde hay un título y un cuerpo principal de
la nota, titulo y cuerpo, primero hay que asegurarse que sean Varchar o TEXT , no usar
BB para esto, no sirve.
ALTER TABLE notas ADD FULLTEXT(titulo, cuerpo);
ahí se crea el índice para la búsqueda, esto puede ocupar un poco más de espacio pero lo
importante se ve en el resultado de la búsqueda. Más rápida y eficiente que un ike,
simplemente funciona como un buscador y no como una comparación sencilla y costosa
como el like.
SELECT * FROM notas
WHERE MATCH(titulo, cuerpo) AGAINST ('Paleta')
donde 'Paleta' es nuestra palabra de búsqueda nos podrá traer inclusive frases o más de
una palabra (el like se muere si le hacen eso)
(obviamente nunca usen *, ahí pongan los campos que van a usar)
Score tiene un valor que no se bien como se calcula pero nos da un orden coherente de
lo que se encontró tal cual hacen algunos buscadores que imprimen un porcentaje o un
valor de "acierto"
ë