2014-03-25 1 views
0

용어 enum에서 각 용어의 문서 빈도를 가져 오려고합니다. 그러나 매번 모든 용어에 대해 문서 빈도가 "1"이됩니다. 어떤 힌트, 문제가 될 수 있을까? 이건 내 코드입니다 :Lucene - docfreq에 대한 TermsEnum 반복

Terms terms = reader.getTermVector(docId, field); 
TermsEnum termsEnum = null; 
termsEnum = terms.iterator(termsEnum); 
BytesRef termText = null; 
while((termsEnum.next()) != null){ 
    int docNumbersWithTerm = termsEnum.docfreq(); 
    System.out.println(docNumbersWithTerm); 
} 

답변

0

완전히 지정된 문서의 구성은 단일 문서 인덱스가있는 경우 등 IndexReader.getTermVector 행위에서 이용 인스턴스입니다.

int docNumbersWithTerm = reader.docFreq(new Term(termsEnum.term(), field)); 
System.out.println(docNumbersWithTerm); 
이 맥락에서 고려해야 할 하나의 문서 만이 존재하기 때문에, 당신은 항상 docfreq() = 1. 당신은 IndexReader.docFreq 방법을 사용하여 전체 인덱스에서 docfreq을 생성 할 수 얻어야한다
관련 문제