[
https://issues.apache.org/jira/browse/LUCENE-1087?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12745983#action_12745983
]
Mark Miller commented on LUCENE-1087:
-------------------------------------
bq. 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.
Looks like I left it out in the cold ! This was a mistake when reverting from
QueryWeight to Weight - I missed removing this deprecation.
fixed and committed r806561
> 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
> Assignee: Mark Miller
> Priority: Minor
> Fix For: 2.9
>
>
> 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: [email protected]
For additional commands, e-mail: [email protected]