Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
None
Description
When SolrIndexSearcher.getDocSet(List<Query>queries) is called, it first checks if any implement the marker interface ScoreFilter, and if so it calls out to getDocSetScore[1] instead of continuing. CollapsingPostFilter is the only Query implementing ScoreFilter. There is a presumption here that any CollapsingPostFilter needs the score. But this just isn't true; you can collapse with a min/max/sort on something that doesn't need the score. So there is a needless performance hit here.
[1] I don't like that getDocSetScore presumes the first query in the list is the scoring one – it's a poor API contract relationship; at a minimum the javadocs should be updated. This holds for getDocSet as well since it passes through. Perhaps getDocSet could be modified to take a nullable scoring Query first arg.