Un buscador avanzado para tu Web

13 jun. 2008
Toda aplicación Web que se precie debe tener un buscador. Pero un buscador en condiciones.

Desde Intranets hasta Webs personales, el hecho de permitir que el usuario busque contenidos en tu Web es muy recomendable e incluso en algunos casos totalmente imprescindible.

Pero hacer un buscador en condiciones no es fácil. Si tenemos una Web pequeña o queremos buscar sobre pocos contenidos, la solución la podemos encontrar en una sencilla sentencia SQL usando el comando "LIKE" o, para MySQL, el famoso "MATCH... AGAINST".

Sin embargo, lo de "pocos contenidos" no suele darse de forma demasiado común. La solución que suelen dar las Webs públicas es poner la típica "Búsqueda de Google" que incluso te permite ganar dinero con Adsense, o usar la Google Ajax Search API.

En este caso, lo bueno es que las búsquedas son bastante buenas, y el coste computacional para tu servidor es nulo.

Sin embargo es una solución que no sirve para Webs que requieran un mínimo control de sus resultados de búsqueda (por ejemplo Todoexpertos) y mucho menos para Intranets.

Entonces... ¿qué hacemos? La solución ideal sería un motor de búsqueda para tu Web, que devuelva resultados muy buenos, que aguante muchísimo contenido y que no suponga demasiado coste computacional. Además de esto, quisieramos otras cosillas como búsqueda concurrentes o que "nada se rompa" si indexo datos mientras otros los buscan.

Pues bien, esa solución existe y se llama Lucene. Lucene es un proyecto de código abierto que implementa el núcleo un motor de búsqueda y que inicialmente se desarrolló para Java.

Básicamente aguanta todo lo que le echen, y devuelve resultados muy rápidos. Para que os hagáis a una idea Todoexpertos tiene un índice de casi 2GB, y sus búsquedas devuelven resultados de forma casi instantánea.

Desde luego no es oro todo lo que reluce. Programar una buscador que haga un correcto uso de Lucene es razonablemente difícil.

En próximos artículos escribiré sobre Lucene para .NET, y cómo lo hemos implementado en Todoexpertos.
comments powered by Disqus
subir