mongoosastic mongodb elasticsearch

mongoosastic - mongodb elasticsearch integration



¿Por qué usar ElasticSearch con Mongo? (3)

He leído algunos artículos recientemente sobre la combinación de mongodb para almacenamiento y mongodb para indexación / búsqueda. Aunque siento que me estoy perdiendo algo. ¿Por qué irías a esta ruta en lugar de solo usar mongo para indexar los datos? ¿Qué beneficios aporta elasticsearch y merece la pena la complejidad añadida?


ElasticSearch implementa muchas más funciones, como la división personalizada del texto en palabras, la derivación personalizada, la búsqueda facetada y mucho más. Si bien la búsqueda de texto de MongoDB (más bien simple) hace algo de esto, no es tan potente como ElasticSearch.

Si todo lo que hace es buscar una sola cadena en un solo campo, entonces el sistema de consulta normal de MongoDB funcionará de manera excelente para eso. Si necesita buscar palabras en varios campos, entonces la búsqueda de texto de MongoDB funcionará. Si necesitas algo más que eso, ElasticSearch es el camino a seguir.


La respuesta de Derick casi lo clava. Las preguntas detrás de todo esto son:

¿Cuáles son las características que desea implementar en su aplicación?

Si confía en las grandes capacidades de búsqueda en grandes porciones de texto, ElasticSearch es probablemente una buena opción. Si desea tener un almacén de datos flexible que pueda hacer frente a complejas consultas ad hoc, Mongo podría ser una buena opción. Si tiene diferentes requisitos para un almacén de datos, a menudo es bueno combinar dos herramientas en lugar de implementar todo tipo de soluciones para que funcione con un solo almacén de datos.

Elija la herramienta adecuada para el trabajo.


Un motor de búsqueda y una base de datos hacen cosas fundamentalmente diferentes. Un buen motor de búsqueda (como ElasticSearch) es compatible con la indexación, las facetas, el resaltado, etc., mucho más elaborados y complejos. En el caso de ElasticSearch, también obtiene sus respuestas en tiempo real. Por otro lado, un motor de búsqueda no devuelve todos los documentos que coinciden con su consulta. En su lugar, puntuará los documentos de acuerdo con la cantidad que coincidan y devolverá los de mayor puntuación. Cuando consulta una base de datos como MongoDB, debe esperar que devuelva todo lo que coincida con su consulta.

Puede almacenar todo el documento en ElasticSearch, pero por lo general no es la solución óptima. Normalmente lo tendrá configurado para devolver los ID de documento, que usará para obtener el documento de una base de datos. MongoDB es una base de datos optimizada para el almacenamiento basado en documentos. esta es la razón por la que escuchas que las personas los usan juntos.

editar:

Cuando se publicó esto, coincidía con las recomendaciones, pero este ya no es el caso.