Загрузка одного поля в люцене - PullRequest
0 голосов
/ 10 марта 2011

Какой самый быстрый способ загрузки всех значений поля индекса lucene в памяти, у меня большой индекс lucene (1.6 ГБ), мне нужно загрузить все поля (ID) в память с наименьшими накладными расходами в памяти, я получаю OutOfMemoryExceptionкогда я перебираю все элементы и читаю это поле (это также очень медленно для загрузки поля индекса, мне нужно решение с лучшей производительностью).

1 Ответ

1 голос
/ 11 марта 2011

Вам может потребоваться решить, зачем вам сначала загружать свои поля в память?

Вы пытались выполнить поиск, используя TermQuery и термин, который просто содержит поле, которое вы хотите загрузить? например новый термин («ID»).

Тогда вам не нужно загружать все значения в память для их перебора. Вместо этого используйте FieldSelector , чтобы при загрузке каждого результата поиска загружалось только одно поле.

В противном случае используйте Lucene FieldCache , чтобы получить значения для всех ваших полей идентификатора.

...