2012-06-13 31 views
11

Soy bastante nuevo en las bases de datos NoSql, pero realmente estoy adorando MongoDB con el controlador C# oficial. Actualmente es el backend de una aplicación MVC que estoy escribiendo, y la simplicidad Y velocidad hacen que mi vida sea mucho más fácil.Qué ventajas ofrece MongoDB sobre ElasticSearch como base de datos NoSQL solamente

Sin embargo, he llegado a ese punto en la aplicación donde realmente necesito una gran búsqueda. Solía ​​usar Solr, pero me interesé bastante en ElasticSearch.

ElasticSearch, por lo que puedo decir (desde un nivel muy superficial), puede hacer todo lo que MongoDB puede en términos de ser una base de datos de documentos.

Entonces, si ya estoy usando un db NoSql, y necesito una gran búsqueda, ¿hay algún punto en Mongo? ¿Cuál es el caso de uso?

¿Es Mongo más rápido? ¿Más fácil de usar? ¿Son los tipos de datos y los controladores BSON? ¿Por qué no utilizar ElasticSearch como mi base de datos?

Actualmente estoy usando AppHarbor y lovin '"The Cloud". Odio las TI y solo quiero enfocarme en mi aplicación. Dicho esto, la única ventaja que veo hasta ahora es:

  • Ya hay una serie de proveedores de MongoDB "en la nube". Con ElasticSearch tengo que configurar todo yo mismo.
+0

Tipo de amplio. Y no creo que el más rápido sea el criterio correcto. Para una aplicación de tamaño pequeño a mediano, todos producirán buena velocidad. Mire las características y la facilidad de desarrollo y soporte. La instalación y el entorno no son tan difíciles. ¿Cuánto te odia? – Paparazzi

+2

En resumen: búsqueda multi-clave. Un poco más de tiempo un combo de ES + MongoDB es genial, lo estoy usando en un sitio web que se acerca a la producción con más de 4 años de experiencia con Solr/Lucene, Membase y otras alternativas. Práctica recomendada, al menos para mí: mantenga sus modelos de dominio en Mongo, busque en ES, pero solo almacene las claves, y después de una búsqueda de ES, haga una búsqueda de claves en Mongo. –

+1

@ Geert-Jan ¿por qué? Cuando ES puede devolver el documento al mismo tiempo que hace la búsqueda con varias teclas. ¿Qué ventaja tiene al golpear ES y luego mongo? – DrTech

Respuesta

3

Esta es una muy buena pregunta. Me hice la misma pregunta y se me ocurrió la siguiente respuesta.

  1. ElasticSearch no tiene una buena manera de hacer copias de seguridad de los datos. Como ejemplo, haga una búsqueda rápida de "ElasticSearch backup" y una para "mongodb backup". MongoDB tiene herramientas y documentación sobre cómo hacer copias de seguridad de los datos. Si bien hay documentación sobre cómo hacer una copia de seguridad de los datos de ElasticSearch, esta documentación no parece tan madura.
  2. En general, MongoDB tiene mucha mejor documentación. En particular, su documentación de administración es mucho mejor que ElasticSearch.
  3. MongoDB proporciona soporte comercial. Es posible que no le interese el soporte comercial en este momento, pero es bueno saber que está disponible.
  4. MongoDB tiene incorporado MapReduce, ElasticSearch no. Esto puede no ser una gran cosa, pero vale la pena señalarlo.

Mi opinión personal es que no usaría ElasticSearch si no puede permitirse perder datos. Pude ver el uso de ElasticSearch como un almacén de datos primario para algo que requiere análisis en tiempo real, pero no tenía ningún requisito de retención de datos a largo plazo. De lo contrario, sugeriría usar MongoDB y ElasticSearch juntos. Hay un complemento MongoDB River para ElasticSearch. Esto hace que sea bastante fácil actualizar el índice ElasticSearch automáticamente.

Cuestiones relacionadas