Elasticsearch
Elasticsearch es un servidor de búsqueda basado en Apache Lucene. Provee un motor de búsqueda de texto completo, distribuido y con capacidad de multi-tenencia con una interfaz web Restful y con documentos JSON. Elasticsearch está desarrollado en Java y está publicado como open source bajo las condiciones de la licencia Apache.
Historia Shay Banon creó Compass en 2004. Mientras estaba pensando en la tercera versión de Compass se dio cuenta que sería necesario reescribir grandes partes de Compass para “crear una solución de búsqueda escalable”. Entonces creó “una solución construida desde el comienzo para ser distribuida” y utilizó una interfaz muy común, JSON sobre HTTP, adecuada también para programar lenguajes que no sean Java. Shay Banon liberó la primera versión de Elasticsearch en febrero de 2010.
En junio de 2014, la compañía anunció la recaudación de U$S 70 millones en una ronda de financiación Serie C, tan solo 18 meses luego de haber formado la compañía. La ronda estuvo liderada por New Enterprise Associates (NEA). Otros financiadores incluyen Benchmark Capital e Index Ventures. Esta ronda obtuvo una financiación total de U$S 104 millones.
Resumen Elasticsearch puede ser usada para buscar todo tipo de documentos. Provee búsqueda escalable, tiene tiempo de búsqueda cercano a tiempo real y soporta multi-tenencia. “Elastichsearch es distribuido, lo que significa que los índices pueden ser divididos en fragmentos y cada fragmento puede tener cero o más réplicas. Cada nodo alberga uno o más fragmentos, y actúa como un coordinador para delegar operaciones a los fragmentos correctos. El rebalanceo y ruteo se realizan automáticamente […]”.
Utiliza Lucene e intenta hacer todas sus funciones disponibles a través de JSON y Java API. Soporta facetado y percolación, que puede ser útil para notificar si nuevos documentos coinciden con consultas registradas.
Otra funcionalidad es llamada gateway y maneja la persistencia a largo plazo del índice; por ejemplo, se puede recuperar un índice del gateway en caso de una caída del servidor. Elasticsearch soporta peticiones GET en tiempo real, lo que lo hace adecuado como una solución NoSQL, pero carece de transacciones distribuidas.