[
https://issues.apache.org/jira/browse/SOLR-7759?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15842774#comment-15842774
]
Alessandro Benedetti edited comment on SOLR-7759 at 1/27/17 4:27 PM:
---------------------------------------------------------------------
After a bit of investigations ( and a manual run) , I ended up with this little
modifications :
1) First we send the global stats :
org/apache/solr/handler/component/QueryComponent.java:1295
...
StatsCache statsCache = rb.req.getCore().getStatsCache();
statsCache.sendGlobalStats(rb, sreq);
sreq.purpose = ShardRequest.PURPOSE_GET_FIELDS;
rb.addRequest(this, sreq);
2) processing the request, we collect the Global Stats and we use them for
debugging
org/apache/solr/handler/component/QueryComponent.java:318
...
if ((purpose & ShardRequest.PURPOSE_SET_TERM_STATS) != 0 || (purpose &
ShardRequest.PURPOSE_GET_DEBUG) != 0) {
// retrieve from request and update local cache
statsCache.receiveGlobalStats(req);
}
req.getContext().put(SolrIndexSearcher.STATS_SOURCE, statsCache.get(req));
Does this make sense ?
If you agree I can take a look to the tests ( if is covered) and then
contribute the patch !
was (Author: alessandro.benedetti):
I didn't try it yet, but would this Naive approach work ?
org/apache/solr/handler/component/QueryComponent.java:318
if ((purpose & ShardRequest.PURPOSE_SET_TERM_STATS) != 0 || (purpose &
ShardRequest.PURPOSE_GET_DEBUG) != 0) {
// retrieve from request and update local cache
statsCache.receiveGlobalStats(req);
}
I will investigate further
P.S. investigating more, of course is not that easy, sorry for the simplistic
approach
> DebugComponent's explain should be implemented as a distributed query
> ---------------------------------------------------------------------
>
> Key: SOLR-7759
> URL: https://issues.apache.org/jira/browse/SOLR-7759
> Project: Solr
> Issue Type: Bug
> Reporter: Varun Thacker
>
> Currently when we use debugQuery to see the explanation of the matched
> documents, the query fired to get the statistics for the matched documents is
> not a distributed query.
> This is a problem when using distributed idf. The actual documents are being
> scored using the global stats and not per shard stats , but the explain will
> show us the score by taking into account the stats from the shard where the
> document belongs to.
> We should try to implement the explain query as a distributed request so that
> the scores match the actual document scores.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]