부울 쿼리는 여러 쿼리 조건에서 히트 수를 하나만 비교하는 것보다 높지만 점수 알고리즘의 한 부분 일뿐입니다. 다른 것들을 씻을 수있는 여러 가지 영향이 있습니다.
부울 쿼리로 결합 된 검색어는 최종 점수를 형성하기 위해 함께 부수를 곱한 값이 많으므로 더 많은 검색어 조건이 자연스럽게 더 많이 부과됩니다. 그 중에서도 더 많은 비율의 검색어가 일치 할 때 더 커지고 점수에 곱 해지는 coord 요인이 있습니다.
그러나 동일한 검색어 기간, 문서 길이, 용어 희소성 및 부스트가 여러 번 일치해도 점수에 영향을 미치며 모든 용어와 일치하지는 않지만 더 높은 점수를 얻는 문서를 가질 가능성이 있습니다 이러한 영향으로부터
여기서 사용중인 알고리즘에 대한 자세한 내용은 TFIDFSimilarity docs을 참조하십시오.
쿼리에 대한 문서 채점을 이해하려면 Explanation
에 익숙해야합니다. 당신이 Highlighter
의 간단한 사용을 사용할 수있는 쿼리를 일치하는 문서의 조각을 식별 할 수
Explanation explain = searcher.explain(myQuery, resultDocNo);
System.out.print(explain.ToString());
: 당신은 문서가 같았다 방법을 득점 한 이유의 사람이 읽을 수있는 설명을 얻을 수 있습니다 다음과 같을 수 있습니다 :
QueryScorer scorer = new QueryScorer(myQuery);
Highlighter highlighter = new Highlighter(scorer);
String fragment = highlighter.getBestFragment(analyzer, fieldName, myDoc.getField(fieldName));
와우, 감사합니다.이 점에 대해 옳은 방향으로 전체 점수 계산 과정을 이해하기 시작했습니다. 설명, 특히 .ToString()을 살펴 보았습니다. 내 문제는 다음과 같습니다. A-Z라는 검색어가있을 수 있습니다. 현재 문서에서 어떤 용어가 일치하는지 알아내는 유일한 방법은 explanation.toString()을 조사하여 용어에 대한 항목이 있는지 여부를 확인하는 것입니다. 더 직접적인 방법이 있습니까? – rinmic