J'essaie de comprendre quel type de fichier binaire peut prendre en charge mes besoins d'index inverse. Disons que j'ai un document que je peux identifier avec un identifiant unique et que chaque document peut avoir 360 valeurs fixes dans une plage de 0-65535. Quelque chose comme ceci:Format binaire à index inverse
Document0: [1, 10, 123, ...] // 360 valeurs
Document1: [1, 10, 345, ...] // 360 valeurs
maintenant, l'indice inverse est facile - je peux créer pour chaque liste de valeurs possibles des documents qui contient, et requête peut être exécutée rapidement, par exemple:
1: [Document0 Document1]
10: [Document0, Document1 ]
123: [Document0]
345: [Document1]
Mais je veux stocker un grand nombre de documents dans une sorte de fichier (binaire) et d'avoir la capacité d'interroger rapidement, mais aussi d'ajouter de nouveaux documents sans recréer toute la structure.
Maintenant, j'ai du mal à organiser ce fichier. Si je veux un accès rapide, j'ai besoin de tableaux de documents de longueur fixe pour faire la recherche de fichiers et de lire. Mais la taille fixe signifie que j'aurai beaucoup d'espaces vides pour la liste des documents. Ma seule idée est d'avoir une sorte de système de seau et chaque valeur peut appartenir à un seau de taille spécifique, par ex. il y a des seaux de taille 1, 2, 4, 8, 16, 32, ... (ou quelque chose comme ça) et j'ai besoin d'une sorte d'en-tête qui me pointe où commence le seau et la taille du seau. Cette idée permettra d'optimiser la taille du magasin, mais encore une fois j'ai des problèmes avec l'ajout de nouveaux documents.
Une idée de comment organiser mon fichier 'index inverse'?
Meilleur.