62 votes

Pourquoi les magasins de documents comme Lucene / Solr ne sont-ils pas inclus dans les conversations NoSQL?

Nous sommes tous venus à travers le récent battage médiatique de no-SQL solutions dernièrement. MongoDB, CouchDB, BigTable, Cassandra, et d'autres ont été répertoriés comme des options de SQL. Voici un exemple:

http://architects.dzone.com/articles/what-nosql-store-should-i-use

Cependant, il y a trois ans, un collègue et moi avons été à l'aide de Lucene.NET comme ce qui semble correspondre à la description de la no-SQL. Nous n'avons pas l'utiliser juste pour l'utilisateur saisi les requêtes de recherche; nous avons utilisé pour faire un peu de réindexée SGBDR tableau de données extrêmement performant. Nous avons mis en place notre propre .NET de tri-de-équivalent-à-Solr service de gestion de ces indices et de les rendre disponibles. Quand j'ai quitté l'entreprise, l'équipe a adopté Solr lui-même. (Pour ceux qui ne sont pas dans le savoir, Solr est un service web qui englobe Lucene avec le RESTE privilège de requêtes et de l'indice de décharges.)

Ce que je ne comprends pas pourquoi est-Solr pas pris en compte dans les listes standard de no-SQL options de solution? Suis-je manqué quelque chose? Je suppose qu'il y a des raisons techniques Solr n'est pas comparable à l'aime de CouchDB, etc., et en fait, je comprends que CouchDB utilise Lucene comme magasin de données (oui?), mais ce qui disqualifie Solr?

Je ne suis pas demandant comme une sorte de Solr fanboy ou quoi que ce soit, je ne comprends juste pas pourquoi Solr et la comme ne correspondent pas à la définition de la no-SQL, et si Solr, techniquement, ne correspondent à la définition alors qu'en est-il probable rend les gens ridiculiser? Je demande parce que je vais avoir de la difficulté à déterminer si je dois continuer à utiliser Lucene-based solutions (comme Solr) pour les solutions que je construis ou si je dois vraiment faire plus de recherches avec ces autres options.

75voto

Bill Karwin Points 204877

Une fois, j'ai écouté une entrevue avec Ursula K. LeGuin sur des textes de fiction. L'interviewer lui a demandé sur les auteurs qui travaillent dans les différents genres de l'écriture. Ce qui fait un auteur, un roman de l'écrivain, et un autre, le mystère de l'écrivain, et de l'autre un écrivain de science-fiction, etc. LeGuin a répondu en expliquant que le genre est sur le marketing, et non pas sur le contenu. C'était une véritable déclaration d'ouverture.

Je pense que la même chose s'applique à des solutions technologiques. Le mouvement NoSQL est d'attirer l'attention parce qu'il est plein de la commercialisation de l'énergie maintenant. NoSQL magasins de données, telles que Hadoop, CouchDB, MongoDB, ont des entreprises commerciales en les soutenant, en poussant leurs solutions nouvelles et innovantes et passionnantes, de sorte qu'ils puissent développer leurs activités. Le terme "NoSQL" est une marque de commerce qui contribue à expliquer leur valeur.

Vous avez raison, Lucene/Solr est techniquement très similaire à un NoSQL banque de document: c'est un dénormalisée sac de documents (leur terme) avec des champs qui ne sont pas nécessairement cohérents dans la collection de documents. Il est indexé de manière sophistiquée pour vous permettre d'effectuer des recherches dans tous les domaines ou des domaines spécifiques.

Mais ce n'est pas le genre de Lucene utilise pour expliquer sa valeur. Ils n'ont pas la même mission à croître à un marché et un business, car ils sont gérés par la Fondation Apache. Ils sont heureux de se concentrer sur le cas d'utilisation de la recherche fulltext, même si la technologie pourrait être utilisée dans d'autres façons. Ils suivent un principe de logiciels de la réussite: faire une chose, et le faire bien.

14voto

stimpy77 Points 2791

Après avoir fait plusieurs Google-recherche, je pense que ce document résume assez bien:

http://www.lucidimagination.com/blog/2010/04/30/nosql-lucene-and-solr/

Affaire au point, Lucene/Solr est NoSql et pourrait être considéré comme l'un des NoSql est plus mature "ancêtres". Il n'a tout simplement pas obtenir le NoSql battage médiatique qu'il mérite parce qu'il n'a pas inventé le terme de "no-SQL" et ses utilisateurs n'utilisent pas le terme, de sorte que la hype machine a oublié.

5voto

Jokin Points 1809

Je pense que la caractéristique la plus pertinente de solr / lucene qui sort de la liste de nosql c’est parce que jusqu’à récemment, faire fonctionner lucene en tant que système temps réel était pénible. Le flux de travail habituel de toute application performante consistait à indexer les mises à jour incrémentielles par lots et à mettre à jour l'index toutes les 5 minutes, par exemple.

3voto

Eric Pugh Points 1235

Je pense que stimpy77 est en partie droite, sur le NoSQL être une image de marque chose. Mais aussi, NoSQL signifie qu'il est une plate-forme de stockage de données qui est plus simple/plus facile ensuite SQL base de solutions. Et je pense alors que Solr/Lucene partager certains aspects (stockage des données), il manque réellement la marque à penser que Solr/Lucene pourrait être utilisé comme stockage de données primaires pour tout ce qui a des relations. Bien sûr, beaucoup de documents peuvent être jetés, et de recherche puissant de les tirer en arrière. Mais dès que vous le souhaitez relations, alors que d'autres comme CouchDB et d'autres beaucoup mieux que d'avoir une syntaxe de requête d'une certaine sorte. La recherche est un bandaid solution dans ce cas. Pensez au cas d'utilisation "rechercher tous les documents marqués avec le mot "voiture"". Si j'ai certaines structures dans mes données, alors il est facile pour moi d'obtenir le document pour la balise de voiture, et tirer tout le monde de retour. Rapport en s'appuyant sur une requête de recherche qui comprend fq=balise: "voiture". La recherche est de plus en plus puissant, moins les relations que vous avez, mais le plus de relations, le meilleur de la banque de données comme CouchDB et mes frères sont. C'est pourquoi vous voyez toujours des CouchDB et amis jumelé avec Solr, et vice-versa! C'est à chacun de faire ce qu'il fait de mieux.

Bien sûr, ce n'est pas à dire que vous ne pouvez pas tirer parti de stockage de votre source de données dans Solr, qui peut être un outil puissant à utiliser!

1voto

Les principales différences entre un pas de sql et solr opérationnelle sage sont les suivantes, à mon avis.

  1. Solr implique un intermédiaire de banque de données (base de données ou de fichiers XML) alors que le nosql lui-même un droit de banque de données.
  2. Vous ne pouvez pas faire une constante écrit à solr (solr 4.0 semble apporter l'appui) et vous ne pouvez indice au max de chaque 2 minutes et 200 dossiers (ce qui est très lent pour un débit élevé, écrit et vous êtes obligés, pour un stockage intermédiaire).
  3. Vous êtes besoin de modifier / définir le schéma lorsque vous modifiez ce qui est stocké dans le document. Le NoSQL n'a pas de telles définitions.
  4. Solr indices de rendement implication lors de son index la taille augmente alors que le NoSQL est optimisé pour elle (ou prétend être :) )
  5. Solr est sous-jacente de recherche lucene algorithmes livré mais en NoSQL vous avez besoin pour construire eux, Cela s'applique à la magnifique recherche à facettes ou ultra-rapide de recherche de documents fournis par solr.

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