Blog de Gonzalo

DESARROLLAR UN BUSCADOR EN PHP

En muchos proyectos se incorpora un buscador para facilitar el acceso a información de un medio online, un producto de una tienda, etc...El desarrollar un buscador en php no es complicado. Hay dos maneras:

  • Buscar el contenido directamente en base de datos: Lo más sencillo sería hacerlo con un "LIKE '%texto_a_buscar%'" en el campo o campos en los que se va a buscar. Quizá esta sea la manera más sencilla de programar un buscador, pero también la menos eficiende. Para hacerlo más eficiente se tendrían que usar índices fulltext en el caso de MySQL. Esta opción es buena si no se tiene demasiada información y el sitio no tiene demasiadas visitas, ya que si el sitio web tiene demasiadas visitas y se hacen muchas búsquedas implicaría muchos accesos a la base de datos.
  • Otra opción que ya es más eficiente, sobre todo para sitios que tienen muchas visitas es usar indexadores de contenidos. Estos indexadores de contenidos acceden a la base de datos para indexar el contenido que tienen y si no generan mucho contenido esta indexación se puede hacer cada cierto tiempo, por ejemplo lanzando un cron por la noche o si generan mucho contenido, como un medio online, indexador con más frecuencia. Dicha indexación se almacena en disco.
    En este caso la búsqueda no se hace contra la base de datos sino en disco, en los ficheros generados por los indexadores y cuando encuentra dicha información accede a la base de datos para disponer de una información en concreto y por lo tanto no se accede tanto a base de datos tan frecuente como en el caso del punto anterior y eso es un aumento de eficiencia.
    Hay tres indexadores de contenidos muy conocidos que son Solr, sphinx y elasticsearch

Compartir en twitter