Я заинтересован в использовании радикального дерева (или Patricia trie) для хранения хеша / dict / array strings -> values
.Однако я обнаружил, что у меня слишком много строк, чтобы уместиться в памяти.
Я нашел статью Algolia о том, как они решили эту проблему с помощью своего поискового индекса , и они говорят о том, что я пытаюсь сделать: сбросить основную ветку на диск в качестве каждой ветвипостроен и читает только те ветки, которые вам нужны.
Однако они не упоминают, как они это делают.Единственный способ сохранить основополагающее дерево - это либо полный (сериализованный) объект, либо хеш / массив как простое хранилище ключей / значений.
Например, используя хранилище ключей / значений
SET smile: [...values...]
SET smiled: [...values...]
SET smiles: [...values...]
SET smiling: [...values...]
Затем выполняется сканирование префикса, чтобы извлечь ключи / значения, которые MATCH smil*
.Тем не менее, этот вид теряет компактные преимущества радиального дерева, а также потребует реконструкции по крайней мере части радиального дерева под нагрузкой.