Zugriff auf ein großes Wörterbuch

Zugriff auf ein großes Wörterbuch

Angenommen, ich habe 250.000 Wörterbucheinträge, die auf ebenso viele Dateien verteilt sind. Jede Datei beginnt mit einer Zeile, die das Stichwort enthält. Zusammen sind sie 2 GB groß. Wie kann ich die Informationen am besten anordnen, damit ich ein Wort einfach und schnell nachschlagen kann? Soll ich Unterverzeichnisse erstellen, abc usw.? Soll ich mehrere Dateien zu größeren Dateien zusammenfassen?

Antwort1

Sie sagen nicht viel darüber, was Sie versuchen zu tun oder was die Daten sind, aber hier ist meine Idee – die davon ausgeht, dass alle Wörter eindeutig sind. Sie sagen nicht, dass Sie sich um die effiziente Nutzung des Speicherplatzes sorgen.

Ext4-Dateisystem. Speichern Sie jedes Wort in einer separaten Datei in einem großen Verzeichnis. Lassen Sie das Dateisystem die Wörter für Sie finden – das ist für Sie sehr einfach (öffnen Sie einfach die gewünschte Datei nach Namen) und das Dateisystem verfügt über eine effiziente Methode zum Auffinden der Dateien.

Sie müssen sicherstellen, dass Ihr Dateisystem über genügend freie Inodes verfügt – einen pro Datei, Sie benötigen also 250.000 freie du -i:.

Vermeiden Sie Aktionen lsoder andere Dinge, bei denen die Dateien aufgelistet werden müssen (z. B. das Öffnen in einem Dateibrowser), und die Leistung sollte in Ordnung sein.

Antwort2

Wenn es sich um ein Wörterbuch wie ein Python-Wörterbuch handelt, konvertieren Sie es in JSON und speichern Sie es in MongoDB oder einer NoSQL-Implementierung und greifen Sie von der Datenbank darauf zu

verwandte Informationen