SOLR vs elasticsearch: Quel moteur de recherche est le meilleur?
Un moteur de recherche distribué contient un index qui peut être divisé en plusieurs fragments, chacun pouvant avoir plusieurs copies. Chaque noeud de recherche élastique peut avoir un ou plusieurs clips. Son moteur sert également de coordonnateur pour déléguer les opérations au bon fragment. Elastic Search offre une extensibilité de recherche presque en temps réel. L’une de ses principales fonctions est la multilocation. Les principales caractéristiques sont les suivantes: recherche distribuée période de localisation multiple une série de groupes de recherche par balayage Âge et maturité agrégés SOLR a une histoire plus vaste depuis la création de yonik sur le réseau CNET en 2004. En 2006, il a fait un don à Apache. Par ailleurs, Elastic Research a été lancée en 2001 sous le nom de COMPASS par son fondateur, Shaw Bannon.
Depuis lors, les créateurs de kibana, logstash et beat se sont joints à la famille Elastic stack. Il est un acteur influent dans le domaine de la recherche et de l’analyse documentaires. SOLR a donc l’avantage d’être la première personne sur le marché et d’aller plus loin. SOLR vs elasticsearch: les communautés et open source ont des communautés très actives. Si vous regardez github, vous verrez qu’il s’agit de projets open source populaires, avec de nombreuses versions. Notez que bien que les deux soient sous licence Apache et open source, ils fonctionnent légèrement différemment. SOLR est un logiciel Open Source: n’importe qui peut aider et contribuer. Vous pouvez également l’ajouter à elasticsearch, mais cela dépend de l’acceptation par les employés ou les entreprises flexibles d’elasticsearch.
C’est une bonne ou une mauvaise chose? Cela signifie que si vous avez besoin d’une fonctionnalité et que vous la fournissez à la communauté avec une qualité suffisante, elle peut être acceptée. Utilisez elasticsearch, selon que vous acceptez les décisions élastiques. D’autre part, la contribution à la recherche sur l’élasticité peut apporter une plus grande cohésion grâce à un meilleur contrôle de la qualité.
Qualité Installation et configuration la recherche flexible est facile à installer et très légère. La version actuelle de la Sous – traitance SOLR (6.2.0) est d’environ 150 Mo. D’autre part, la version actuelle de la recherche élastique (2.4.0) n’a que 26,1 Mo de taille de paquet de distribution. De plus, vous pouvez installer et exécuter elasticsearch en quelques minutes.
Cependant, la facilité de déploiement et d’utilisation peut poser problème si la recherche élastique n’est pas traitée correctement. Une configuration basée sur json est facile, mais si vous voulez spécifier un commentaire pour chaque configuration dans le fichier, il ne vous convient pas. La dernière version de SOLR offre un bon ensemble d’API de sommeil qui éliminent la complexité des versions précédentes, comme l’enregistrement des algorithmes de regroupement et la création de fragments personnalisés. Dans l’ensemble, Elastic Search est un meilleur choix si votre application utilise json. Sinon, utilisez SOLR pour le scénario. XML et solrconfig. Le XML est bien documenté.
SOLR vs elasticsearch: Node Discovery une autre différence importante entre les deux principaux produits est Node Discovery. Lors de la formation initiale du cluster, lors de l’ajout d’un nouveau noeud, ou lors d’une erreur de noeud dans le cluster. Vous devez décider quoi faire selon les critères spécifiés. C’est l’un des noeuds de responsabilité. Elastic Search utilise sa propre implémentation de détection, appelée zen, qui exige que les trois noeuds maîtres dédiés soient entièrement tolérants aux pannes (c. – à – D. non affectés par la partition du réseau).
SOLR utilise Apache Zookeeper pour découvrir et sélectionner des leaders. Cela nécessite une collection externe d’administrateurs d’animateur qui nécessite au moins trois instances d’administrateurs d’animateur pour implémenter un Cluster SOLR Cloud tolérant les défauts et entièrement disponible. Localisation des fragments en général, la recherche élastique est très dynamique dans votre corps
Rmini pour l’index créé et l’emplacement des fragments. Lorsqu’une opération se produit, les fragments peuvent être déplacés vers le cluster, par exemple lorsqu’un nouveau noeud est connecté ou lorsqu’un noeud est retiré du cluster. Nous pouvons décider où placer ou non les fragments en utilisant des étiquettes de sensibilisation, et nous pouvons dire à Elastic Search de déplacer les fragments à la demande en utilisant des appels API. D’autre part, SOLR est plus statique.
Lorsque le noeud SOLR rejoint ou quitte le cluster SOLR sans rien faire par lui – même, les données doivent être rééquilibrées. Bien sûr, nous pouvons déplacer les fragments, mais cela prend plusieurs étapes. Nous devons créer une copie, attendre qu’elle synchronise les données, puis supprimer ce qui n’est plus nécessaire. Automatisons quelque chose. Utilisez l’API collection pour supprimer ou remplacer un noeud dans le cloud SOLR, un moyen rapide de supprimer tous les clips ou de les copier rapidement vers un autre noeud. Bien que cela nécessite encore un appel API manuel, ne l’exécutez pas automatiquement. SOLR vs elasticsearch: index et recherche sources de données SOLR accepte des données provenant de diverses sources, y compris des fichiers XML, des fichiers séparés par des virgules (CSV) et des données extraites de tables de base de données, ainsi que des formats de fichiers communs comme Microsoft Word et PDF.
La recherche élastique accepte également des données provenant de nombreuses sources différentes. Par exemple, AWS SQS, dynamodb (Amazon nosql), système de fichiers, GIT, JDBC, JMS, Kafka, LDAP, mongodb, neo4j, rabbitmq, redis, SOLR et convulves. Plusieurs plug – ins sont également disponibles. Les recherches SOLR sont davantage axées sur le texte, tandis que les recherches élastiques sont généralement utilisées pour analyser les requêtes, filtrer et grouper. L’équipe derrière la recherche élastique essaie toujours de rendre ces requêtes plus efficaces (y compris les moyens de réduire l’utilisation de la mémoire et du processeur) et d’améliorer les performances en comparant les niveaux de recherche lumineux et élastique. De toute évidence, pour les machines
La recherche et l’agrégation de séries chronologiques complexes, la recherche élastique est un meilleur choix. Les deux moteurs de recherche utilisent plusieurs Analyseurs et balises pour diviser le texte en termes ou balises, puis les indexer. Elasticsearch vous permet de spécifier une chaîne d’analyseur de requête composée d’une série d’Analyseurs ou de balises pour chaque document ou requête. Lier plusieurs Analyseurs de sorte que la sortie d’un analyseur devienne l’entrée d’un deuxième analyseur. Au lieu de cela, SOLR ne supporte pas cette fonctionnalité. Index vous pouvez indexer les deux moteurs de recherche tout en faisant correspondre les documents en utilisant stop et synonymes. Dans SOLR, l’index de connexion doit être un seul fragment et copié sur tous les noeuds pour rechercher les relations entre les documents (par exemple, les connexions SQL). Cela vous aide à trouver le document principal et les sous – documents qui correspondent aux critères. Selon certains tests de performance, Elastic Search peut produire de meilleurs résultats que SOLR. SOLR vs elasticsearch: API si vous connaissez Apache SOLR ou elasticsearch, vous savez qu’ils exposent l’API http. Ceux qui connaissent SOLR savent que pour obtenir des résultats de recherche, vous avez besoin d’un gestionnaire de requête pour la définition de requête et de passer les paramètres qui définissent les critères de requête. Ces paramètres varieront selon l’analyseur de requête que vous choisissez d’utiliser, mais la méthode restera la même. Envoyer une requête HTTP Get à SOLR pour obtenir les résultats de la recherche. Eh bien, vous n’êtes pas limité à un seul format de réponse: Vous pouvez choisir de développer un XML, javabon, json, et une variété d’autres formats d’auteurs de réponse pour eux. Par conséquent, vous pouvez choisir le format le plus pratique pour vous et votre application de recherche. L’API ne concerne pas seulement les requêtes, car vous pouvez également obtenir des statistiques sur différents composants de recherche ou contrôler le comportement SOLR, comme la création
Et la collection. Et la recherche élastique? Elasticsearch expose une API d’interruption accessible en utilisant les méthodes HTTP Get, delete, publish et put. Son API vous permet non seulement d’interroger ou de supprimer des documents, mais aussi de créer des index, de les gérer, de contrôler l’analyse et d’obtenir tous les paramètres qui décrivent l’état actuel et les paramètres de recherche élastiques. Toute information sur la recherche élastique est disponible dans le reste de l’API. Si vous êtes habitué au solo, ça pourrait être bizarre au début. Seules les recherches en format élastique peuvent être répondues avec json, par exemple, sans réponse XML. Une autre grande différence entre la recherche élastique et SOLR est la requête. La structure est représentée comme json. Cette structure fournit beaucoup de contrôle sur les requêtes d’objets json qui impliquent comment la recherche élastique devrait comprendre la requête et ensuite quels résultats retourner. Une autre grande différence entre SOLR et elasticsearch: cache est l’architecture elasticsearch et SOLR. Au lieu d’aller plus loin dans la façon dont le cache fonctionne sur les deux produits, nous soulignerons simplement les principales différences entre eux. Les segments sont des index lucene créés par plusieurs fichiers, dont la plupart sont immuables et contiennent des données. Lors de l’indexation des données, lucene génère des segments et peut également fusionner plusieurs segments existants plus petits en segments plus grands dans un processus appelé fusion de segments. SOLR a un cache global, une seule instance de cache d’un type particulier de clip, pour tous ses segments. Lorsque vous modifiez un seul segment, vous devez écraser et vider tout le cache. Cela prend du temps et consomme des ressources matérielles. Le moteur d’analyse SOLR est grand et possède de nombreuses capacités d’analyse de données. Nous pouvons commencer par le bon côté: la première implémentation vous permet de couper constamment les données pour les comprendre et les comprendre. Puis il y a l’apparence json avec des fonctionnalités similaires, mais plus rapide et moins de mémos requis
RIA, enfin une expression basée sur le flux, appelée expression de flux, peut combiner des données provenant de plusieurs sources (comme SQL, SOLR, Polygon) et utiliser diverses expressions (tri, extraction, calcul des éléments importants, etc.). Elastic Search fournit un puissant moteur d’agrégation pour effectuer non seulement des analyses de données de classe mondiale, comme la plupart des aspects hérités de SOLR. Mais il permet également l’analyse de données imbriquées (par exemple, le calcul du prix moyen par catégorie de produits dans chaque secteur du magasin). Il soutient également l’analyse des résultats agrégés pour prendre des mesures telles que le calcul des moyennes mobiles et d’autres fonctions. Enfin, bien que Elastic Search soit marqué comme expérimental, il fournit un support pour l’agrégation de tableaux qui calcule les statistiques d’un ensemble de champs. SOLR vs elasticsearch: fonctions de recherche en texte intégral SOLR et elasticsearch tirent parti des capacités en temps quasi réel de lucene. Cela permet à la requête de faire correspondre le document immédiatement après l’index. Dans la base de code SOLR, les fonctions liées à la recherche en texte intégral et les fonctions proches de la recherche en texte intégral sont très riches. Notre formation SOLR est pleine de ces choses! Il est très configurable, depuis un large choix d’Analyseurs de requêtes mis en œuvre par une variété de messages jusqu’à la capacité de corriger les erreurs d’orthographe de l’utilisateur en utilisant la vérification orthographique et un large support de mise en évidence. Elasticsearch dispose d’une API tip Man dédiée pour cacher les détails de mise en œuvre de l’utilisateur. Il nous offre un moyen plus simple de mettre en œuvre les recommandations au détriment d’une flexibilité réduite. SOLR se concentre davantage sur la recherche de texte. D’autre part, la recherche élastique est souvent utilisée pour le filtrage et le regroupement (interrogation de l’analyse de la charge de travail) plutôt que pour se rechercher elle – même.
C’est vrai. Au niveau Lucerne et Elastic search, les développeurs de recherche élastique s’efforcent de rendre cette requête plus efficace (en réduisant l’utilisation de la mémoire et du processeur). Développement convivial si vous voulez demander aux développeurs quel type de recherche flexible ils aiment, les réponses seront API, maniabilité et facilité d’installation. En cas de dépannage, elasticsearch peut facilement obtenir des informations sur son état, des informations sur l’utilisation du disque, les statistiques de travail, la mémoire inutile et la collecte de données aux recherches élastiques internes telles que l’utilisation du cache, du tampon et du pool de Threads. SOLR ne l’a pas encore fait: Vous pouvez obtenir des informations via le mbean jmx et la nouvelle API de l’indicateur SOLR, mais cela signifie qu’il y a plusieurs endroits à voir et même s’il y en a, tout n’existe pas. SOLR vs elasticsearch: traitement de données non planaires avez – vous des données non planaires, beaucoup d’objets imbriqués dans des objets imbriqués, et beaucoup d’objets imbriqués dans un autre objet imbriqué? Vous ne voulez pas aplatir les données, juste indexer les beaux objets json mongodb et être prêt pour la recherche en texte intégral? Elasticsearch sera un outil parfait pour soutenir les objets, les documents imbriqués et les relations parents – enfants. SOLR n’est peut – être pas la meilleure solution ici, mais rappelez – vous qu’il prend également en charge les documents parent – enfant et imbriqués lors de l’indexation des documents XML et json. SOLR prend en charge les jointures de requêtes à l’intérieur et entre différentes collections, de sorte qu’il ne se limite pas au traitement du temps d’indexation parent – enfant. Disons – le à haute voix: le langage de requête elasticsearch est vraiment différent. Si vous aimez json. Il vous permet de créer des requêtes en utilisant json, donc il sera bien structuré et vous permettra de contrôler toute la logique. Vous pouvez combiner différents types de requêtes pour écrire une logique correspondante m
C’est très compliqué. La recherche de texte n’est pas tout; Cela peut inclure l’agrégation, la compression des résultats, etc. Tout le contenu des données dont vous avez besoin peut être représenté dans la langue de requête. D’autre part, SOLR utilise toujours la recherche d’Uri, du moins dans ses API les plus couramment utilisées (vous pouvez également utiliser l’analyseur de requête XML et l’API json restreinte). Tous les paramètres saisissent l’Uri, ce qui peut conduire à des requêtes longues et complexes. Les deux moteurs de recherche peuvent aider les utilisateurs à trouver des résultats pertinents pour les problèmes.