lucene-dev mailing list archives

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

    [ https://issues.apache.org/jira/browse/LUCENE-991?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12525695
] 

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 = searcher.search(query, 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: https://issues.apache.org/jira/browse/LUCENE-991
>             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 'TestBoostingTermQuery.java', 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.

-- 
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: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


Mime
View raw message