Frage

Ich bin auf einem System arbeiten, das eine Menge von Dokumenten speichern muß (PDFs, Word-Dateien etc.) Ich bin mit Solr / Lucene für Revelant Informationen aus diesen Dokumenten extrahierten suchen, aber ich brauche auch einen Platz speichern sie die ursprünglichen Dateien, so dass sie von den Benutzern geöffnet / heruntergeladen werden.

Ich dachte über mehrere Möglichkeiten:

  • Dateisystem - wahrscheinlich nicht so gute Idee, um Dokumente zu speichern 1m
  • SQL-Datenbank - aber ich werde nicht brauchen die meisten davon relationalen Funktionen ist, wie ich nur das binäre Dokument und seine ID speichern, müssen so könnte dies nicht die schnellste Lösung sein
  • no-SQL-Datenbank - hat keine expierience mit ihnen, damit ich nicht sicher bin, ob sie alle gut sind entweder, es gibt auch viele von ihnen, also weiß ich nicht, welche
  • holen

Die Speicherung ich suche sollte sein:

  • fast
  • scallable
  • Open-Source (nicht entscheidend, aber schön zu haben)

Können Sie empfehlen, was ist der beste Weg, um die Dateien zu speichern, wird Ihrer Meinung nach sein?

War es hilfreich?

Lösung

Ein Dateisystem - wie der Name schon sagt -. Entworfen und optimiert speichern große Anzahl von Dateien in einer effizienten und skalierbaren Art und Weise

Andere Tipps

Sie können Facebook folgen, wie es eine Menge von Dateien (15 Milliarden Fotos) speichert:

  • Sie zunächst mit NFS-Freigabe Gestartet von kommerziellen Speichergeräten bedient.
  • Dann zogen sie in ihre eingene Implementierung http Dateiserver namens Haystack

Hier ist ein Facebook-Notiz, wenn Sie mehr http lernen wollen: //www.facebook .com / note.php? note_id = 76191543919

Im Hinblick auf die NFS-Freigabe. Beachten Sie, dass NFS-Aktien in der Regel Anzahl der Dateien in einem Ordner aus Performance-Gründen begrenzt. (Dies könnte ein wenig unlogisch, wenn Sie davon ausgehen, dass die letzten Dateisysteme b Bäume verwenden, um ihre Struktur zu speichern.) Also, wenn Sie comercial NFS Aktien verwenden wie (NetApp) Sie werden wahrscheinlich Dateien in mehreren Ordnern halten müssen.

können Sie tun, wenn Sie irgendeine Art von ID für Ihre Dateien. teilen sie nur Ascii Darstellung in Gruppen von wenigen Zeichen und Make-Ordner für jede Gruppe. Zum Beispiel verwenden wir ganze Zahlen für ids so Datei mit der ID 1234567891 als Speicher / 0012/3456/7891 gespeichert wird.

Ich hoffe, das hilft.

Meiner Meinung nach ...

Ich würde Dateien speichern komprimiert auf die Platte (Dateisystem) und eine Datenbank verwenden den Überblick zu behalten.

und posibly SQLite verwenden, wenn dies seine einzige Aufgabe ist.

Dateisystem: Während Denken über das große Bild, das DBMS verwendet das Dateisystem wieder. Und das Dateisystem ist für die Aufbewahrung der Dateien gewidmet, so dass Sie die Optimierungen sehen können (wie LukeH erwähnt)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top