Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-9501

Collapse filter should sometimes be cacheable instead of never

    XMLWordPrintableJSON

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.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              dsmiley David Smiley
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated: