2016-11-23 1 views
0

Я использую Lucene 5.3.1, и я уже проиндексировал некоторые документы, и теперь я пытаюсь найти встроенную функцию для подсчета всех токенов (через коллекцию/index)Как подсчитать количество всех токенов в коллекции/индексе

Я знаю, что могу перебирать все документы и составлять сумму по их длине. Но из-за моих сложных алгоритмов, которые увеличивают время выполнения, я пытаюсь избежать такого подхода. Я думаю, что lucene, возможно, имеет api для этого ...

В конце концов, я искал эту функцию (или любую аналогичную функцию), но я не могу найти полезную ссылку.

Теперь встает вопрос: есть ли встроенная функция, которая возвращает количество ВСЕХ ТОКЕНС в коллекции (т. Е. Весь индекс) ?? Если нет, есть ли другой оптимальный подход?

Любая помощь приветствуется, спасибо.

ответ

1

В конце концов я нашел решение.

Я использую CollectionStatistics следующим образом:

CollectionStatistics collectionStats = indexSearcher.collectionStatistics("Body"); 
long token_count = collectionStats.sumTotalTermFreq(); 

sumTotalTermFreq() метод возвращает токенов в коллекции. Это исправление для любого запроса.