
Elasticsearch: el motor de búsqueda flexible
Si necesitas hacer una búsqueda de texto completo, probablemente elijas Apache Solr y, en efecto, será una buena elección, pero desde 2010 el mercado ofrece una alternativa interesante: Elasticsearch. Al igual que Solr, Elasticsearch está basado en Apache Lucene, pero cuenta con otras funciones muy interesantes. Te explicamos las características del servidor de búsqueda y cómo implementar la búsqueda de texto completo para tu proyecto con nuestro tutorial de Elasticsearch.Elasticsearch es uno de los buscadores de texto completo más importantes de Internet. Grandes empresas como, por ejemplo, Facebook, GitHub, Netflix, SoundCloud o Zalando llevan años trabajando con el software con mucho éxito.
¿Qué es Elasticsearch?
Dada la gran cantidad de información con la que cuentan algunos sitios web, solo se puede garantizar un alto nivel de funcionalidad implementando una búsqueda de texto completo. Si no quieres recurrir a las herramientas de Google o Bing para ofrecer a tus visitantes una función de búsqueda, tendrás que insertar la tuya propia. Esto es posible, por ejemplo, con Elasticsearch. Este software libre se basa en la versión gratuita de Apache Lucene.Elasticsearch ofrece las ventajas de sus predecesores e incluye otras características. Como en el caso de Lucene, la búsqueda se realiza mediante un índice, pero en lugar de examinar todos los documentos, el programa comprueba un índice de documentos que se ha creado previamente en el que todo el contenido se almacena de forma preparada. Este proceso requiere mucho menos tiempo que la consulta de todos los documentos.
Aunque Lucene ofrece total libertad en cuanto a dónde y cómo utilizar la búsqueda de texto completo, con este software se parte de cero. A cambio, Elasticsearch facilita los primeros pasos en la Web. Con Elasticsearch es posible construir un servidor de búsqueda estable en poco tiempo que también se puede distribuir fácilmente entre varios equipos.
Utilizando el llamado sharding, varios nodos (diferentes servidores) se unen para formar un clúster: Elasticsearch desglosa el índice y distribuye las partes individuales (shards) entre varios nodos, dividiendo así la carga de cálculo. Para proyectos grandes, la búsqueda de texto completo es mucho más estable y, en caso de que busques mayor seguridad, también puedes copiar los fragmentos a varios nodos.
Elaticsearch se basa, al igual que Lucene, en el lenguaje de programación orientado a objetos Java. El motor de búsqueda produce los resultados en formato JSON y los entrega a través de un servicio web REST. La API facilita la integración de la función de búsqueda en un sitio web.
Además, Elasticsearch ofrece con Kibana, Beats y Logstash (conocidos juntos como Elastic-Stack) servicios adicionales que se pueden utilizar para analizar la búsqueda de texto completo. La empresa Elastic, que está detrás del desarrollo de Elasticsearch y que fue fundada por el inventor del programa, también ofrece servicios de pago, como el cloud hosting.
Comentarios