2013-10-06 35 views
5

我將lucene 4.4用於索引my docs,現在我想通過IndexReader獲取所有術語。在舊版本中,我使用:如何獲得由lucene創建的索引目錄中的所有術語4.4.0

IndexReader reader = new IndexReader.open(pathIndexDirectory); 
TermEnum listTerm = reader.terms(); 

但是在4.4版本中,我無法做到這一點。 我現在可以做什麼?

+1

,我也需要它:)) – ThiepLV

回答

8

所以我用這種方式:

IndexReader reader = IndexReader.open(ramdir) 
Fields fields = MultiFields.getFields(reader); 
     for (String field : fields) { 
      Terms terms = fields.terms(field); 
      TermsEnum termsEnum = terms.iterator(null); 
      int count = 0; 
      while (termsEnum.next() != null) { 
       count++; 
      } 
      System.out.println(count); 
     } 
+0

@ThiepLV檢查:d – Thangnv

+0

您還可以使用terms.size()來獲取條款總量而不必執行while循環。 – airin

+1

這不會計算幾次常用術語嗎? – raven

相關問題