Я пытаюсь выяснить, какой двоичный файл может удовлетворить мои потребности в обратном индексе.Допустим, у меня есть документ, который я могу идентифицировать с уникальным идентификатором, и каждый документ может иметь 360 фиксированных значений в диапазоне 0-65535.Примерно так:
Document0: [1, 10, 123, ...] // 360 значений
Document1: [1, 10, 345, ...] // 360 значений
Теперь обратный индекс прост - я могу создать для каждого возможного списка значений документ, который содержит, и запрос может быть выполнен быстро, например:
1: [Document0, Document1]
10: [Document0, Document1]
123: [Document0]
345: [Document1]
Но я хочу хранить большое количество документов в некоторыхтип файла (двоичный) и возможность быстрого запроса, а также добавления новых документов без воссоздания всей структуры.
Теперь я пытаюсь организовать этот файл.Если я хочу быстрый доступ, мне нужны массивы документов фиксированной длины для поиска файлов и чтения.Но фиксированный размер означает, что у меня будет много пустых мест для списка документов.Моя единственная идея состоит в том, чтобы иметь какую-то систему группирования, и каждое значение может принадлежать сегменту определенного размера, например, есть области с размером 1, 2, 4, 8, 16, 32, ... (или что-то подобное) имне нужен какой-то заголовок, который укажет мне, где начинается ковш и его размер.Эта идея оптимизирует размер магазина, но у меня снова возникают проблемы с добавлением новых документов.
Есть идеи, как организовать мой файл "обратного индекса"?
Best.