Lucene이 어떻게 만들 수 있는지, 소스 코드에서 IndexReader로 검색자를 초기화할 때 세그먼트 파일을 열고로드한다는 것을 알고 있습니다. 그러나 Lucene이 어떻게 용어 빈도를 계산하는지 알려주는 사람이 있습니까? 특별한 분야의 문서. 특별한 알고리즘이 있습니까? 원한다면, TF에 explan 코드를 판독 할 때 그것을 알아낼 수문서 필드에서 특정 용어의 빈도를 계산하는 방법은 무엇입니까?
Explanation tfExplanation = new Explanation();
int d = scorer.advance(doc);
float phraseFreq = (d == doc) ? scorer.currentFreq() : 0.0f;
tfExplanation.setValue(similarity.tf(phraseFreq));
tfExplanation.setDescription("tf(phraseFreq=" + phraseFreq + ")");
방위군> 0이지만 이유 코드 phraseFreq 0.0이고, I는 (d == 문서)가 유사하므로 알 거짓, 왜냐하면 d = Integer.MAX_VALUE, 왜 그런지, 그리고 무엇이 문제인지 모르겠다.
ps : 색인 생성되고 저장되는 하나의 필드가있는 문서가 하나 뿐이며 searcher.explan (booleanQuery, 1)과 같이 디버그 코드에서 사용되는 문서는 1입니다.
누군가가 나에게 조언을 해줄 수 있기를 바랍니다. 감사합니다.
자신을 올바른 대답으로 투표하고 몇 가지 사항을 선택하십시오. 행운을 빕니다! – shellter
조언 해 주셔서 감사합니다. –