Как я могу сохранить перевернутый индекс документа на диске? - PullRequest
4 голосов
/ 15 марта 2012

Я знаю, что этот вопрос задавали снова и снова в stackoverflow и google, но я обнаружил, что все ответы не могут удовлетворить меня.Большинство решений предполагают, что весь индекс может поместиться в памяти, и затем мы можем сохранить его на диске с помощью сериализации Java.Когда нужен индекс, мы должны загрузить весь индекс в память.Решения, подобные этому: решение 1 , решение 2 .Но, как мы знаем, это предположение не всегда верно, так что я должен сделать, чтобы сохранить инвертированный индекс документа на диске, когда он не помещается в память?

Буду признателен, если вы сможете датьмне решение в Java.

Ответы [ 2 ]

1 голос
/ 15 марта 2012

Я бы попробовал JDBM3 Это поддерживает дерево и коллекции хэшей, и единственное требование - чтобы каждый ключ или запись помещался в память.

Если у вас есть очень большие записи, я предлагаю сохранить каждую из них в виде файлов, которые могут быть отображены в памяти для извлечения части данных. В таблице поиска вы можете хранить ключи к именам файлов. (Или сделать файлы именами ключей)

0 голосов
/ 04 февраля 2019

Обновление через несколько лет.

JDBM3 больше не поддерживается. MapDB является его заменой. Он может хранить несколько данных (карты памяти и т. Д.), Которые будут соответствовать вашим требованиям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...