Ist MongoDB eine gültige alternative zu relationalen db + lucene?
Auf ein neues Projekt brauche ich einen harten Einsatz von lucene für eine searcher-Implementierung. Dieser Sucher ist eine sehr wichtige (und große) Stück des Projekts. Gültig ist oder bequem ersetzen Relationale Datenbank + Lucene mit MongoDb?
edit: Ok, ich werde es klarzustellen: ich verlange nicht, über die Gefahr, die ich bezahlen kann, dass der Preis in diesem Projekt. Mein Punkt ist: Ist MongoDB orientiert, um diese Art der Sache? Kann ich eine vollständige Suchmaschine, mit der gleichen perfomance wie ich bekommen kann, auf Lucene?. Ein Freund mir aus MongoDB als alternative, aber ich sehe nicht, ob der Lucene-performance kommt mit der Dokument-alternative (und dann werde ich sehen, es in MongoDB auch), oder, in der anderen hand, den invertierten index und optimitizations sind absolut unabhängig von Dokument-Orientierung.
- Meine 2 Cent: ich würde componented Ansatz, in dem Sie die Möglichkeit haben, später die Möglichkeit der änderung der zugrunde liegenden Datenquelle
- Ok, ich werde es klarzustellen: ich verlange nicht, über die Gefahr, die ich bezahlen kann, dass der Preis in diesem Projekt. Mein Punkt ist: Ist MongoDB orientiert, um diese Art der Sache? Kann ich eine vollständige Suchmaschine, mit der gleichen perfomance wie ich bekommen kann, auf Lucene?. Ein Freund mir aus MongoDB als alternative, aber ich sehe nicht, ob der Lucene-performance kommt mit der Dokument-alternative (und dann werde ich sehen, es in MongoDB auch), oder, in der anderen hand, den invertierten index und optimitizations sind absolut unabhängig von Dokument-Orientierung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Technisch können Sie tun, voll-text-Suche mit MongoDB, aber Sie verpassen eine Menge, die eine Volltext-Suche-Anbieter zu bieten hat. Ich Liebe MongoDB, aber ich würde paar es mit einem full-text search-provider (wie Lucene oder Sphinx), wenn die Zeit zur Umsetzung ist bei allen ein Anliegen. Ich denke, MongoDB bequeme Möglichkeit, um index-Wort-arrays ist besser Links, um tagging und Suche auf der Grundlage tagging als Volltextsuche.
Suche (Information Retrieval) aber nicht nur ergreifende Dokumente, die übereinstimmen, wenn Sie wollen Ihre Suchergebnisse zu noch Relevanz auf alles, was Sie gehen zu müssen, um etwas entlang der Linien von TF-IDF, Satz passenden (Worte, die in einer Sequenz eine Kerbe höher) oder eine beliebige Anzahl anderer IR-Techniken, die Suchmaschinen zu verbessern Präzision. Wenn Sie MongoDB werden Sie brauchen, um es zu implementieren alle von Grund auf neu.
Wenn Sie wirklich wollen, es zu implementieren, die alle von Grund auf, aber nicht die Mühe mit dem raw-Speicher-Seite der Dinge, MongoDB ziemlich nah an der besten DB speichern, dass Sie es umsetzen auf der Oberseite (kann nicht glauben, viele andere), aber das immer noch nicht machen es eine gute option.
CouchDb scheint zu sein, eine(n anderer) möglich alternative zu verwenden Lucene über
couchdb-lucene Projekt.
MongoDb ist eine NOSQl, Lucene und SOLR sind Suchmaschinen, und das hinzufügen von eine andere Sache, der Vergleich caches wie Terracota zusammen mit EhCache. Alle haben Ihren eigenen Zweck.
Wenn die Suche zusammen mit Volltext-Suche mit Wortstamm, Relevanz, Einstellungen, wie die Anzeige von Suchergebnissen mit text-matching in Produkt-Titel ranking-mehr als text-matching in desctription, und viele solche text-basierten Funktionen. Auch Rankings, die Relevanz, die ähnlich klingen macthing, teilweise übereinstimmenden Wort etc etc . Alle diese Dinge werden am besten behandelt, die von search-basierten storage-Systemen wie SOLR und Lucene.
Wenn Ihr Kriterien ist fater Abruf nur und Sie brauchen nicht Ihre Präsentation der Daten Objekte, um haltbar zu sein dann nutzen Sie einfach einen cache lke Terracota.
Wenn Sie eine schnellere abrufen und müssen auch colloborate und aggregieren von Daten in einer Datenquelle und auch müssen, dass aggregierte Daten, um haltbar zu sein, dann verwenden NOSQL wie Mongodb.
Blick ist möglich, aber langsamer (siehe hier)
Ich bin nicht vertraut mit MongoDB, also kann ich nicht direkt beantworten Sie die Frage, aber ich möchte zu beachten, dass im Gegensatz zu Lucene (das ist über zehn Jahre alt) und relationalen Datenbanken (die es schon seit Jahrzehnten) MongoDB ist weniger als drei Jahre alt.
In diesem Stadium des Spiels ist es wahrscheinlich noch Reifen. Es kann sein, geeignet, um Ihre Bedürfnisse (und ich bin gespannt zu sehen, ob jemand vertraut mit der Verwendung, es wird hier in Glockenspiel), aber Sie brauchen, um zu einem Faktor in Ihrer Gleichung. Sind Sie bereit, den Preis zu zahlen, um verwenden Sie cutting-edge-Technologie?
Auch wenn es windet sich als stabil und leistungsfähig genug, kann es zu Problemen durch die begrenzte Unterstützung in form von Webseiten/tutorials usw. (aufgrund der kleinen user-Basis). Sie sind auch mit der chance, dass es eingestellt wird.
Kann es sich lohnen, diese chance zu nutzen, aber Sie brauchen, dies zu tun, öffnen Sie Ihre Augen und nicht geblendet von der "oh, schau mal, an der glänzenden neuen Spielzeug" - Effekt.
Andere Möglichkeit ist die Verwendung elasticsearch (gesichert in lucene) Breite couchdb: http://www.elasticsearch.org/blog/2010/09/28/the_river_searchable_couchdb.html
Lucene ist ein etabliertes und stabiles Produkt. Ach das gleiche ist doch nicht wahr, von MongoDB. Also ich würde denken, dass Lucene plus ein RDBMS ist eine weniger riskante option.
Natürlich zu einem gewissen Grad hängt es von der Art des Projekts: wie wichtig ist "sehr wichtige (und große)"? Die andere Sache ist, haben Sie Vorherige Erfahrung mit MongoDB (ich vermute nicht)? Wenn man Zugang zu Menschen, die über ein gewisses know-how dann wäre das Risiko mindern.
Nach dem Besuch der Devoxx 2011 und der Teilnahme an einer Präsentation von 10Gen, die ich geschrieben habe, ein wenig blog-Vergleich von MongoDB zu RDBMS-Datenbanken. MongoDB ist eine der beliebtesten Nosql-dbs.Wie bereits in den Antworten vor MongoDB ist eine NoSQL db, die anders ist, exising mainstream-rdbms-Datenbanken.
http://blog.iprofs.nl/2011/11/25/is-mongodb-a-good-alternative-to-rdbms-databases-like-oracle-and-mysql
Für fulltext-search-Lösungen, die ich verwendet haben, Lucene & Sphinx früher, aber Sie sind nicht gut zu Holen, beste Ergebnisse den mitgelieferten Schlüsselwort. So habe ich mongodb-Volltext-Suche-plugin MongoLantern, die ist sehr gut. Darüber hinaus sind in punkto Leistung ist es mit MongoDB als eine backend-engine, so gibt es keine performance-Probleme auf allen. warten auf weitere Bewertungen im Hinblick auf die Produktion Verwendbarkeit des MongoLantern.
https://sourceforge.net/projects/mongolantern/
Nein, ist es nicht, da MongoDB ist nicht relational.