70 votes

Elasticsearch en tant que base de données?

Je suis tombé sur Elastic Search, qui semble être un très bon moteur de recherche en texte intégral. Il est sans schéma, distribué, en utilisant JSON et RESTful API, tout comme CouchDB.

Vous pouvez ajouter des enregistrements et les récupérer, ainsi que faire une recherche puissante dans les textes.

Voici mes questions:

  1. Elastic search peut-il être utilisé comme base de données?
  2. Pourquoi voudrais-je mettre des documents dans CouchDB, puis les mêmes documents dans Elastic Search, puis interroger uniquement Elastic Search?

69voto

skaffman Points 197885

Pourrait Elastic search être utilisé comme une base de données?

Certainement. Si c'est une bonne idée ou pas est une autre question. ES en premier lieu est un indice-et-moteur de recherche, pas une base de données. Il n'est pas conçu pour être résilient, et il ne supporte pas les transactions. Si vos ES index est corrompu, alors vous reconstruire à partir de la base de données source. Si votre ES de l'indice est la principale banque de données, il va être sur un terrain bien fragile, relativement parlant.

Pourquoi voudrais-je mettre des documents dans CouchDB puis mettre les mêmes documents dans Elastic search, puis seulement requête à partir d'Elastic search?

Parce que ES a énormément de meilleures capacités de recherche et de performances, en particulier quand il s'agit de requêtes ad-hoc et la recherche de texte intégral. En fait, si vous regardez la CouchDB page wiki sur le texte intégral de recherche, il recommande l'utilisation de la 3e partie add-ons (ES).

Si CouchDB de recherche intégré de fonctionnalités correspondent à vos besoins, alors vous n'avez pas besoin de ES.

23voto

7voto

Jieren Points 1084

Au-delà de la recherche plein texte, ElasticSearch est également très bon pour les "où" les requêtes (filtres) et "groupe" des requêtes (les facettes.) La plupart des bases de données NoSQL en ce moment sont assez terrible à la fois ces tâches toux Mongo toux

Généralement, si vous trouvez vous-même le partitionnement des données en catégories en fonction de certaines caractéristiques de données, puis de faire des trucs avec ces partitions, vous devriez essayer ElasticSearch.

Si vous êtes juste faire de la clé/valeur de récupération, je m'en tiendrais à quelque chose de plus léger.

1voto

Tracker1 Points 6573

Si vous avez besoin de recherche en texte intégral, puis ElasticSearch est une très bonne option. Je recommande d’avoir votre document stocké/sauvegardés à l’extérieur du moteur de recherche lui-même... Mon plan est d’avoir un répertoire pour chaque type de document (limité à 3 pour mon usage personnel) et ont chacun comme un plat doctype-### .json à des fins de sauvegarde. Je suis dans un scénario de lecture pour la plupart où peut-être 1000 de 300 000 documents sont mises à jour... donc mes besoins ne sont pas les mêmes que tout le monde. YMMV.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X