lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Grant Ingersoll (JIRA)" <>
Subject [jira] Commented: (LUCENE-991) BoostingTermQuery.explain() bugs
Date Fri, 07 Sep 2007 12:22:31 GMT


Grant Ingersoll commented on LUCENE-991:

Hi Peter, 

Couple comments.  #1 makes sense, except the super.score() part, the score from the other
part of the matching is handled by the nonPayloadExpl part.  I do agree it should check for
zero on payloadsSeen, though, and have added that.

I don't think I am understanding the issue with #2 above.  I am not sure the test is correct.
 The results[0] being passed into the checkHitCollector say you expect Document 0 to be a
match, but this can't be since the boost is 0, therefore there are no results.  This can be
seen by running the query against the search without the explain, as in:
TopDocs hits =, null, 100);
assertTrue("hits Size: " + hits.totalHits + " is not: " + 0, hits.totalHits == 0);

Or, perhaps I am missing something?  I guess I don't see why the boost part needs to be in
there?  Can't you have a test that has no payloads?

> BoostingTermQuery.explain() bugs
> --------------------------------
>                 Key: LUCENE-991
>                 URL:
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: Search
>    Affects Versions: 2.2
>            Reporter: Peter Keegan
>            Assignee: Grant Ingersoll
>            Priority: Minor
>         Attachments: TestBoostingTermQuery.patch
> 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)"
> The average payload score can be zero if the field boost = 0.
> I've attached a patch to '', however, the test 'testNoPayload'
fails in 'SpanScorer.score()' because the doc = -1. It looks like 'setFreqCurrentDoc() should
have been called before 'score()'. Maybe someone more knowledgable of spans could investigate

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message