No encuentro ninguna explicación profunda en la web sobre una comparación entre ElasticSearch y las bases de datos de gráficos.
Ambos están optimizados para atravesar datos.
ElasticSearch parece estar optimizado para análisis.
Sin embargo, Neo4j también se basa en Lucene para administrar índices y algunas características de texto completo.
¿Por qué usaría ElasticSearch si ya uso una base de datos gráfica?
En mi caso, estoy usando Neo4j para construir una red social.
¿Qué beneficio real puede aportar ElasticSearch?
ACTUALIZACIÓN ----------
Acabo de encontrar este párrafo:
Hay miles de casos en los que elasticsearch es útil. Algunos casos de uso lo requieren más claramente que otros. A continuación se enumeran algunas tareas para las cuales elasticsearch es particularmente adecuado.
- Buscar una gran cantidad de descripciones de productos para la mejor coincidencia para una frase específica (por ejemplo, "cuchillo de cocinero") y obtener los mejores resultados
- Dado el ejemplo anterior, desglosando los diversos departamentos donde aparece el "cuchillo de cocinero" (ver Facetado más adelante en este libro)
- Búsqueda de texto para palabras que suenan como "temporada"
- Completar automáticamente un cuadro de búsqueda basado en palabras parcialmente tipadas basadas en búsquedas emitidas previamente mientras se explican faltas de ortografía
- Almacenar una gran cantidad de datos semiestructurados (JSON) de manera distribuida, con un nivel específico de redundancia en un grupo de máquinas
Sin embargo, debe tenerse en cuenta que si bien elasticsearch es excelente para resolver los problemas antes mencionados, no es la mejor opción para otros. Es especialmente malo para resolver problemas para los que las bases de datos relacionales están optimizadas. Problemas como los que se enumeran a continuación.
- Calcular cuántos artículos quedan en el inventario
- Calcular la suma de todas las partidas en todas las facturas enviadas en un mes determinado
- Ejecutar dos operaciones transaccionalmente con soporte de reversión
- Crear registros que garanticen ser únicos en varios términos dados, por ejemplo, un número de teléfono y una extensión
- Elasticsearch es generalmente fantástico para proporcionar respuestas aproximadas de los datos, como la calificación de los resultados por calidad. Si bien Elasticsearch puede realizar coincidencias exactas y cálculos estadísticos, su tarea principal de búsqueda es una tarea inherentemente aproximada.
- Encontrar respuestas aproximadas es una propiedad que separa la búsqueda elástica de las bases de datos más tradicionales. Dicho esto, las bases de datos relacionales tradicionales sobresalen en precisión e integridad de datos, para lo cual elasticsearch y Lucene tienen pocas disposiciones.
¿Puedo afirmar que si no necesito respuestas aproximadas, ElasticSearch sería inútil en comparación con una base de datos de gráficos ya utilizada?