Fields fields = MultiFields.getFields(reader); Iterator<String> fieldsIter = fields.iterator(); while (fieldsIter.hasNext()) { String fieldname = fieldsIter.next(); TermsEnum terms = fields.terms(fieldname).iterator(); BytesRef term; while ((term = terms.next()) != null) { System.out.println(fieldname + ":" + term.utf8ToString() + " ttf:" + terms.totalTermFreq()); //Or whatever else you want to do with it... } }
import org.apache.lucene.index.Fields; import org.apache.lucene.index.Terms; import org.apache.lucene.index.TermsEnum; import org.apache.lucene.util.BytesRef; import org.elasticsearch.action.termvectors.TermVectorsResponse; ... public List<String> getTerms(TermVectorsResponse resp){ List<String> termStrings = new ArrayList<>(); Fields fields = resp.getFields(); Iterator<String> iterator = fields.iterator(); while (iterator.hasNext()) { String field = iterator.next(); Terms terms = fields.terms(field); TermsEnum termsEnum = terms.iterator(); while(termsEnum.next() != null){ BytesRef term = termsEnum.term(); if (term != null) { termStrings.add(term.utf8ToString()); } } } return termStrings; }