1.读取某个域的tem
Directory dir = FSDirectory.open(new File(indexDir));
IndexReader reader = DirectoryReader.open(dir)
int numDocs = reader.maxDoc();
for(int i=0;i < numDocs;i++){ //i自行设置,这里遍历了所有的文档
Document doc = reader.document(id);
Terms vector = reader.getTermVector(id, "subject");
TermsEnum termsEnums = vector.iterator(null);
BytesRef byteRef = null;
BooleanQuery subjectQuery = new BooleanQuery();
while((byteRef = termsEnums.next()) != null){
String term = new String(byteRef.bytes);
System.out.println("term :" + term);
}
2.读取索引所有域的term
Directory dir = FSDirectory.open(new File(indexDir));
IndexReader reader = DirectoryReader.open(dir)
Fields fields = MultiFields.getFields(reader );
Iterator<String> fieldsIterator = fields.iterator();
while(fieldsIterator.hasNext()){
String field = fieldsIterator.next();
Terms terms = fields.terms(field);
TermsEnum termsEnums = terms.iterator(null);
BytesRef byteRef = null;
System.out.println("field : "+ field);
while((byteRef = termsEnums.next()) != null) {
String term = new String(byteRef.bytes, byteRef.offset, byteRef.length);
System.out.println("term is : " + term);
}
}