sql >> Database >  >> NoSQL >> MongoDB

MongoDB zoeken in volledige tekst versus Lucene?

Zonder in een lang onderwerp te vervallen dat waarschijnlijk niet geschikt zou zijn voor een programmeerforum, zal ik proberen dit in principe te behandelen, maar toch proberen de punten te behandelen.

Het belangrijkste om te overwegen bij het maken van een brede vergelijking is dit:"Hoe verhoudt de 'XYZ' relationele database-engine zoeken in volledige tekst zich tot Lucene" .

Dus als je dat in overweging neemt en ervaring hebt met de ingebouwde "full text"-mogelijkheden van die producten, dan zijn dat de appels die je moet te vergelijken met de MongoDB "full text" appels.

Kortom, MongoDB biedt basisfuncties voor volledige tekst, niet veel anders dan die in relationele producten. Zoals vermeld in a:) , de faciliteiten zijn nieuw, maar beter dan wat er voorheen was, wat niets was.

Op b :) , Lucene en afgeleiden/tegenhangers (Solr / ElasticSearch, enz.) moeten helemaal als een ander dier worden beschouwd. Waar je nodig hebt geavanceerde tokenizing en stemming, ingebouwde faciliteiten voor "Meer zoals dit" en facettellingen op zoekopdrachten. In die gevallen is het aparte product een vereiste.

Natuurlijk zijn er verschillende oplossingen voor het indexeren van gegevens van MongoDB-winkels in Lucene enz., en zelfs het aanpassen van dit proces is niet moeilijk. Maar het houdt een ander bewegend onderdeel in uw infrastructuur in stand.

Dus ik zie dit niet echt als een noodzaak om vergelijken MongoDB tekst zoeken met Lucene, omdat uiteindelijk ze bestaan ​​om verschillende dingen te doen, het is gewoon een kwestie van wat je nodig hebt voor uw aanvraag. Kies de oplossing die het beste bij u past.

Het enige om toe te voegen is dat de Lucene (en afgeleide) familie geweldige producten zijn. Schroom niet om ze een kans te geven, in ieder geval om te evalueren. De punten van eerder zijn dat er veel meer kracht is dan welke "Standard Database Text Search" dan ook. Verder zijn de admin- en leercurve over het algemeen "niet zo moeilijk als je denkt". Speel eens, het kan de moeite waard zijn om te implementeren.



  1. verkrijg de relevante informatie tegen de objectwaarde in MongoDB

  2. Async Bulk (batch) invoegen in MySQL (of MongoDB?) via Node.js

  3. TypeError op /accounts/login/ id moet een instantie zijn van (str, unicode, ObjectId), niet <type 'int'>

  4. sorteer op datum met geaggregeerd verzoek in mongodb