Contenido relacionado con mysql

Implementar links a post/vídeos/contenido relacionado es, al contrario de lo que pueda parecer, una tarea bastante sencilla.

Para el siguiente ejemplo imaginemos que partimos de una web estilo youtube sobre una base de datos mysql, cada pagina contiene 5 tags, una descripción y titulo. El objetivo será lanzar una consulta a base de datos que devuelva los vídeos relacionados ordenador por su relevancia/parecido.

Antes de nada vamos a tener que añadir indices fulltext a los campos de la bd sobre los que queremos lanzar la consulta (estos indices solo son compatibles con el motor MyIsam y no con InnoDB).

ALTER TABLE videos ADD FULLTEXT(title, description, keywords);

A partir de aquí ya solo queda dividir los tags/descripción/titulo en tokens y lanzar la siguiente consulta:

select * from videos where match(title, description, keywords)
against (‘word1 word2 word3 word4′ in boolean mode)
order by relevance desc

El modificador boolean mode también permite descartar los resultados que contengas ‘xxxx’ palabras. El siguiente ejemplo devuelve los resultados que contengas katrina pero no se refieran al huracán.

select * from videos where match(title, description, keywords)
against (‘+Hurricane -Katrina’ IN BOOLEAN MODE);

Más información sobre búsquedas fulltext mysql

Compartir:
  • Facebook
  • Twitter
  • Meneame
  • Google Bookmarks
  • del.icio.us
  • BarraPunto
  • Bitacoras.com
  • Netvibes
  • MySpace
  • Technorati
  • email
  • PDF

Ningun post realacionado

Deja un comentario

You must be logged in to post a comment.