Если вы используете API Lucene 4.0, вам нужно вытащить поля из читателя индекса. Затем Fields предлагает способ получить термины для каждого поля в индексе. Вот пример того, как это сделать:
Fields fields = MultiFields.getFields(indexReader);
Terms terms = fields.terms("field");
TermsEnum iterator = terms.iterator(null);
BytesRef byteRef = null;
while((byteRef = iterator.next()) != null) {
String term = new String(byteRef.bytes, byteRef.offset, byteRef.length);
}
В конце концов, для новой версии Lucene вы можете получить строку из вызова BytesRef:
byteRef.utf8ToString();
вместо
new String(byteRef.bytes, byteRef.offset, byteRef.length);
Если вы хотите получить частоту документа, вы можете сделать:
int docFreq = iterator.docFreq();