Nous devons intégrer un moteur de recherche dans notre logiciel de gestion de catalogue de produits. le catalogue devrait avoir plus de 4-5 mn. enregistrements avec des données relationnelles réparties sur plusieurs tables. Notre plate-forme de développement est Asp.Net 3.5 et nous avons fait quelques travaux préliminaires sur Lucene, qui ont été jugés bons. Cependant, nous venons de connaître Solr et nous recherchions des conseils pratiques pour comparer Lucene & Solr de l’implémentation, la chronologie, la maintenance régulière, la performance, la perspective des fonctionnalités. Tout conseil ou pointeur serait vraiment utile. Merci.
Lucene:
Apache Lucene est une bibliothèque de moteur de recherche de texte performante et complète, entièrement écrite en Java. C’est une technologie adaptée à presque toutes les applications nécessitant une recherche en texte intégral.
Solr:
Solr est un serveur de recherche d’entreprise open source basé sur la bibliothèque de recherche Java de Lucene, avec les API XML / HTTP et JSON, la mise en évidence des access, la recherche à facettes, la mise en cache, la réplication, une interface d’administration Web et …
Essentiellement, Lucene est intégré à Solr et est purement une bibliothèque de recherche de texte intégral, dans le but d’être intégré dans des projets leur offrant des capacités de recherche en texte intégral. Solr offre beaucoup plus de fonctionnalités et de capacités d’administration, permettant de rechercher des données structurées sans avoir à écrire de code personnalisé, à charger des données à partir de fichiers CSV, à parsingr les entrées de manière tolérante, à mettre en évidence des textes de formats (XML, JSON, …). Vérifiez la page des fonctionnalités de Solr et vérifiez si une fonctionnalité est pertinente pour votre projet.
Je suis d’accord avec Andrew Clegg. Je pense que lorsque de nombreux types de développeurs Java regardent Lucene vs Solr, Lucene semble plus convivial car il ne s’agit que d’une bibliothèque (POJJ: Plain Old Java Jar!), Comme toute autre bibliothèque. debout Solr comme un processus séparé qui communique sur HTTP complexe.
Cependant, je pense que pour presque tous les cas d’utilisation de la recherche, Solr est la bonne approche. La plus grande partie de la complexité de la recherche ne réside pas dans l’intégration initiale directe, mais dans les domaines flous de la recherche, de la mise à l’échelle pour répondre à la demande et de la maintenance des index du développeur. Et Solr répond parfaitement à tous ces besoins.
Comme le dit dcruz, Solr utilise Lucene de toute façon, ce n’est donc pas une comparaison valable.
Lucene est une boîte à outils pour créer des applications de recherche, Solr est une application de recherche créée avec Lucene.
OMI, vous seriez fou de ne pas utiliser Solr, car il vous fournit beaucoup de «plomberie» que vous devrez écrire vous-même, comme un gestionnaire d’importation de données configurable pour extraire des données de vos référentiels SGBDR ou XML.
De plus, il vous offre une interface d’administration Web et d’autres fonctionnalités.
Une chose à prendre en compte est la difficulté de configurer votre application lorsque vous mélangez ces deux environnements (Java / .NET). Si vous utilisez les bibliothèques Lucene.NET, vous pouvez limiter les installations de dépendance externes requirejses, ce qui rationalise le déploiement.
Une autre chose à considérer est la suivante: avez-vous besoin des extras offerts par Solr? Une interface web (nother) web est probablement excellente mais elle étend votre enveloppe de risque. La mise en place de Java et d’un autre service implique une gestion plus efficace des correctifs. Si vous restz avec .NET, seule votre stratégie de correctifs peut être le modèle de mise à jour Windows standard.
Bien sûr, le déploiement de votre implémentation à l’aide de Lucene.NET aura des coûts de développement et de maintenance qui lui sont propres mais, d’après mon expérience, elle a été simple et facile à utiliser.
Nous sums exactement dans la même situation que vous. Malheureusement, je n’ai pas été directement impliqué dans le processus d’évaluation, mais à la fin, nous allons utiliser Solr intégré à Lucene.
Le principal avantage est la variété des formats décrits par dcruz. Vous pouvez donc interroger votre Solr-Consumer et récupérer vos résultats de recherche sous forme de données XML qui peuvent être facilement analysées et affichées sur la page Web.
Permettez-moi de changer de cap: êtes-vous prêt à modifier votre architecture de produit? Lucene et Solr sont tous deux implémentés en Java. Ainsi, vous finirez par exécuter un autre conteneur Web pour l’héberger (et perdrez ainsi la pureté de la plate-forme, pour ainsi dire). Alors que Lucene était porté sur .NET ( projet Lucene.NET ), Solr n’était pas aussi loin que je sache. Si vous utilisez SQL Server (ce qui est probable, compte tenu de votre plate-forme), vous pouvez envisager la recherche de texte intégral SQL Server à la place – il a presque les mêmes fonctionnalités (pas si riche en fonctionnalités que Lucene / Solr) et généralement (dans la plupart des cas) est beaucoup plus facile à intégrer dans une application existante. De plus, vous bénéficiez d’une maintenance simplifiée (elle est fournie avec votre firebase database) et d’une plate-forme unique.