There are a couple of minor bugs in BoostingTermQuery.explain().

1. The computation of average payload score produces NaN if no payloads were
found. It should probably be:
float avgPayloadScore = super.score() * (payloadsSeen > 0 ? (payloadScore /
payloadsSeen) : 1);

2. If the average payload score is zero, the value of the explanation is 0:
result.setValue(nonPayloadExpl.getValue() * avgPayloadScore);
If the query is part of a BooleanClause, this results in:
"no match on required clause..."
"failure to meet condition(s) of required/prohibited clause(s)"

Let me know if I should open a JIRA issue.

Peter

Reply via email to