2016-11-23 4 views
0

Ich benutze Lucene 5.3.1 und ich habe bereits einige Dokumente indiziert und jetzt versuche eine eingebaute Funktion zu finden, um alle Token zählen (über die Sammlung/index)So zählen Sie alle Token zählen in einer Sammlung/Index

Ich weiß, dass ich über alle Dokumente iterieren und eine Summe über ihre Länge machen kann. Aber wegen meiner komplexen Algorithmen, die die Laufzeit erhöhen, versuche ich, diesen Ansatz zu vermeiden. Ich denke, Lucene vielleicht eine API für diese ...

Schließlich googelte ich diese Funktion (oder eine ähnliche Funktion), aber ich kann keinen nützlichen Link finden.

Jetzt ist die Frage: Gibt es eine eingebaute Funktion, die Anzahl aller TOKENS in Sammlung zurückgibt (d. H. Ganzer Index) ?? Wenn nicht, gibt es einen anderen optimalen Ansatz?

Jede Hilfe wird geschätzt, danke.

Antwort

1

Schließlich fand ich die Lösung.

Ich benutze CollectionStatistics auf folgende Weise:

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

sumTotalTermFreq() Methode alle Token in der Sammlung zurück. Es ist für jede Abfrage fest.