You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Mark Miller (JIRA)" <ji...@apache.org> on 2009/08/11 02:16:14 UTC
[jira] Commented: (LUCENE-1087) MultiSearcher.explain returns
incorrect score/explanation relating to docFreq
[ https://issues.apache.org/jira/browse/LUCENE-1087?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12741636#action_12741636 ]
Mark Miller commented on LUCENE-1087:
-------------------------------------
Not sure how to fix this, but I think LUCENE-1771 will make it a bit easier - if we can just get the multi searcher passed as the searcher to explain(searcher, reader, doc), it would pull the right numbers.
Not sure how to do that though - as it is, it looks like explain on MultiSearcher is going to get left out in the cold - MultiSearcher works with Searchables, but Searchable#explain is deprecated with the replacement on Searcher. Thats trouble for MultiSearcher#explain.
> MultiSearcher.explain returns incorrect score/explanation relating to docFreq
> -----------------------------------------------------------------------------
>
> Key: LUCENE-1087
> URL: https://issues.apache.org/jira/browse/LUCENE-1087
> Project: Lucene - Java
> Issue Type: Bug
> Components: Query/Scoring
> Affects Versions: 2.2
> Environment: No special hardware required to reproduce the issue.
> Reporter: Yasoja Seneviratne
> Priority: Minor
>
> Creating 2 different indexes, searching each individually and print score details and compare to searching both indexes with MulitSearcher and printing score details.
>
> The "docFreq" value printed isn't correct - the values it prints are as if each index was searched individually.
> Code is like:
> {code}
> MultiSearcher multi = new MultiSearcher(searchables);
> Hits hits = multi.search(query);
> for(int i=0; i<hits.length(); i++)
> {
> Explanation expl = multi.explain(query, hits.id(i));
> System.out.println(expl.toString());
> }
> {code}
> I raised this in the Lucene user mailing list and was advised to log a bug, email thread given below.
> {noformat}
> -----Original Message-----
> From: Chris Hostetter
> Sent: Friday, December 07, 2007 10:30 PM
> To: java-user
> Subject: Re: does the MultiSearcher class calculate IDF properly?
> a quick glance at the code seems to indicate that MultiSearcher has code
> for calcuating the docFreq accross all of the Searchables when searching
> (or when the docFreq method is explicitly called) but that explain method
> just delegates to Searchable that the specific docid came from.
> if you compare that Explanation score you got with the score returned by
> a HitCollector (or TopDocs) they probably won't match.
> So i would say "yes MultiSearcher calculates IDF properly, but
> MultiSeracher.explain is broken. Please file a bug about this, i can't
> think of an easy way to fix it, but it certianly seems broken to me.
> : Subject: does the MultiSearcher class calculate IDF properly?
> :
> : I tried the following. Creating 2 different indexes, search each
> : individually and print score details and compare to searching both
> : indexes with MulitSearcher and printing score details.
> :
> : The "docFreq" value printed don't seem right - is this just a problem
> : with using Explain together with the MultiSearcher?
> :
> :
> : Code is like:
> : MultiSearcher multi = new MultiSearcher(searchables);
> : Hits hits = multi.search(query);
> : for(int i=0; i<hits.length(); i++)
> : {
> : Explanation expl = multi.explain(query, hits.id(i));
> : System.out.println(expl.toString());
> : }
> :
> :
> : Output:
> : id = 14 score = 0.071
> : 0.07073946 = (MATCH) fieldWeight(contents:climate in 2), product of:
> : 1.0 = tf(termFreq(contents:climate)=1)
> : 1.8109303 = idf(docFreq=1)
> : 0.0390625 = fieldNorm(field=contents, doc=2)
> {noformat}
--
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