2012-05-08 10 views

Antwort

3

Sie sich derzeit nicht tun können echte Volltextsuche innerhalb von Mongo: hier http://www.mongodb.org/display/DOCS/Full+Text+Search+in+Mongo

Fühlen Sie sich frei dafür stimmen: https://jira.mongodb.org/browse/SERVER-380

Mongo skalierbare Daten mehr ein allgemeines ist speichern, und bis jetzt hat es keine Unterstützung für die Volltextsuche. Abhängig von Ihrem Anwendungsfall könnten Sie die Standard-B-Baum-Indizes mit einem Array aller Wörter im Text verwenden, aber es wird keine Stemming- oder Fuzzy-Übereinstimmungen usw. geben.

Allerdings würde ich empfehlen zu kombinieren Mongodb mit einer Lucene-basierten Anwendung (elastische Suche ist beliebt). Sie können alle Ihre Daten in mongodb (Binärdaten, Metadaten usw.) speichern und dann den einfachen Text Ihrer Dokumente in Lucene indizieren. Oder, wenn Ihr Anwendungsfall reine Volltextsuche ist, könnten Sie nur die elastische Suche anstelle von mongodb verwenden.

Update (April 2013): MongoDB 2.4 unterstützt jetzt einen grundlegenden Volltextindex! Einige nützliche Ressourcen unten.

http://docs.mongodb.org/manual/applications/text-search/

http://docs.mongodb.org/manual/reference/command/text/#dbcmd.text

http://blog.mongohq.com/blog/2013/01/22/first-week-with-mongodb-2-dot-4-development-release/

+1

MongoDB 2.4 unterstützt jetzt die Volltextsuche. –

+0

Wahr. Ich nehme an, ich sollte das aktualisieren. –

+1

MongoDB 2.6 hat nun eine Volltextsuche als Teil seiner regulären Abfrageoperatoren (bis 2.4 mussten Sie db.runCommand verwenden). Sie können jedoch innerhalb einer gridfs-Datei keine Suche durchführen. Sie sind nur binäre Brocken und Mongo behandelt sie nicht anders, wenn sie Teile eines Bildes oder Kapitel eines Lehrbuchs sind. – amenadiel

0

Nicht mit MongoDB APIs, nicht, dass ich weiß. GridFS scheint designed to be more like a simplified file system mit APIs zu sein, die eine direkte Schlüssel-Wert-Semantik bieten. Auf ihrer project ideas Seite Liste sie zwei Dinge, die Sie in produktionsbereiten Zustand, wenn existierte helfen würde:

  • GridFS FUSE, die erlauben würden Sie GridFS als lokales Dateisystem zu mounten und dann indizieren, wie würden Sie Index Material auf Ihrem Festplatte
  • Real-Time Volltextsuche Integration mit Tools wie Lucene und Solr. Es gibt einige Projekte auf github und bitbucket, die Sie vielleicht auschecken möchten.

Siehe auch ElasticSearch. Ich habe gesehen some integration with Mongo, aber ich bin mir nicht sicher, wie viel getan wurde to tap into the GridFS (GridFS Anhang Unterstützung wird erwähnt, aber ich habe nicht damit gearbeitet, um sicher zu wissen). Vielleicht werden Sie derjenige sein, der es baut und es dann öffnet? sollte ein lustiges Abenteuer

+1

GridFS FUSE ist hoffnungslos veraltet. –