Я реализовал дерево суффиксов в Python для полнотекстового поиска, и он работает очень хорошо. Но есть проблема: индексированный текст может быть очень большим, поэтому мы не сможем иметь всю структуру в ОЗУ.
IMAGE: Дерево суффикса для слова BANANAS
(в моем сценарии представьте дерево в 100000 раз больше).
Итак, немного об этом узнав, я нашел модуль pickle
, отличный модуль Python для "загрузки" и "сброса" объектов из/в файлы, и угадайте, что? Он отлично работает с моей структурой данных.
Итак, сделав длинную историю короче: что было бы лучшей стратегией для хранения и извлечения этой структуры на/с диска? Я имею в виду, что решение может состоять в том, чтобы хранить каждый node в файле и загружать его с диска всякий раз, когда это необходимо, но это не лучше всего думает (слишком много обращений к диску).
Сноска: Хотя я отметил этот вопрос как python, язык программирования не является важной частью вопроса, стратегия хранения/извлечения диска на самом деле является основным.