2014-07-10 2 views
2

그래서 인덱스에 대한 용어 벡터 분석을하려고하는데 getTermVectors를 실행할 때 항상 null이 발생합니다. 내 색인은 다음 속성으로 생성됩니다. 내가 벡터를 얻을 할 때getTermVectors가 항상 null을 반환하는 이유는 무엇입니까?

type.setIndexed(true); 
    type.setTokenized(true); 
    type.setStored(true); 
    type.setStoreTermVectors(true); 
    type.setStoreTermVectorPositions(true); 
    type.freeze(); 

은 나중에, 나는

Map<String, Int> termFreqMap = new HashMap<>(); 
for (String fieldName : fieldNames) { 
    final Fields vectors = ir.getTermVectors(docNum); 
    .... 

그리고 벡터가 전체 루프는 null 끝나는 다음 코드를 실행합니다. 나는 어리석은 실수를 저질렀나요? 어떤 도움이라도 대단히 감사하겠습니다!

답변

0

TextField에 대한 색인을 생성 할 수 있습니다. TextField는 용어 벡터없이 색인 필드가 필요한 사용자를위한 편리한 클래스입니다. 용어 벡터가 필요한 경우 필드 만 사용하십시오. FieldType의 인스턴스를 먼저 만들고 storeTermVectors 및 tokenizer를 true로 설정 한 다음 Field 생성자에서이 FieldType 인스턴스를 사용해야하므로 코드가 몇 줄 더 필요합니다.