Используйте TermDocs
, чтобы получить частоту термина для данного документа. Как и периодичность документа, вы получаете термин документы из IndexReader
, используя интересующий вас термин.
Вы не найдете более быстрый метод, чем TermDocs
, не потеряв при этом общности. TermDocs
читает непосредственно из файла ".frq" в сегменте индекса, где частота каждого термина указана в порядке документа.
Если это «слишком медленно», убедитесь, что вы оптимизировали свой индекс для объединения нескольких сегментов в один сегмент. Перебирайте документы по порядку (пропуски в порядке, но вы не можете эффективно перемещаться в списке документов назад и вперед).
Ваш следующий шаг может быть дополнительной обработкой для создания еще более специализированной файловой структуры, которая исключает SkipData
. Лично я бы искал лучший алгоритм для достижения своей цели или обеспечил бы лучшее аппаратное обеспечение - много памяти, либо для хранения RAMDirectory
, либо для предоставления ОС для использования в собственной системе кэширования файлов.