Acessando um dicionário grande

0

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

    
por Toothrot 21.10.2016 / 23:08

2 respostas

1

Você não fala muito sobre o que está tentando fazer ou sobre quais são os dados, mas aqui está minha ideia - que pressupõe que todas as palavras sejam exclusivas. Você não diz que está preocupado com o uso eficiente de 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 que deseja por nome) e o sistema de arquivos tem um método eficiente de localizar os arquivos.

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

Evite fazer ls ou outras coisas que precisam enumerar os arquivos (como abri-lo em um navegador de arquivos) e o desempenho deve ser bom.

    
por 22.10.2016 / 00:58
0

Se é um dicionário como um dicionário python, converta-o para JSON e armazene-o para o MongoDB ou alguma implementação NoSQL e acesse-o a partir do banco de dados

    
por 22.10.2016 / 04:33