Acessando um grande dicionário

Acessando um grande dicionário

Digamos que eu tenha 250.000 entradas de dicionário divididas em tantos arquivos. Cada arquivo começa com uma linha contendo o headword. Juntos eles têm 2 GB. Qual é a melhor maneira de organizar as informações para que eu possa procurar uma palavra com facilidade e rapidez? Devo criar subdiretórios abc etc? Devo combinar vários arquivos em arquivos maiores?

Responder1

Você não diz muito sobre o que está tentando fazer ou quais são os dados, mas aqui está minha ideia - que pressupõe que todas as palavras são únicas. Você não diz que está preocupado com o uso eficiente do espaço em disco.

Sistema de arquivos Ext4. Armazene cada palavra em um arquivo separado em um grande diretório. Deixe o sistema de arquivos encontrá-los para você - muito fácil para você (basta abrir o arquivo desejado pelo nome) e o sistema de arquivos possui um método eficiente de localizar os arquivos.

Você precisará ter certeza de que seu sistema de arquivos possui inodes livres suficientes - um por arquivo, então você precisará de 250.000 livres: du -i.

Evite fazer lsou outras coisas que precisem enumerar os arquivos (como abri-los em um navegador de arquivos) e o desempenho deverá ser bom.

Responder2

Se for um dicionário como um dicionário python, converta-o para JSON e armazene-o no MongoDB ou em alguma implementação NoSQL e acesse-o no banco de dados

informação relacionada