Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-6228

Do not expose full-fledged scorers in LeafCollector.setScorer

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 8.0
    • None
    • None
    • New

    Description

      Currently LeafCollector.setScorer takes a Scorer, which I don't like because several methods should never be called in the context of a Collector (like nextDoc or advance).

      I think it's even more trappy for methods that might seem to work in some particular cases but will not work in the general case, like getChildren which will not work if you have a specialized BulkScorer or iterating over positions which will not work if you are in a MultiCollector and another leaf collector consumes positions too.

      So I think we should restrict what can be seen from a collector to avoid such traps.

      Attachments

        1. LUCENE-6228.patch
          134 kB
          Adrien Grand
        2. LUCENE-6228.patch
          166 kB
          Adrien Grand
        3. LUCENE-6228.patch
          206 kB
          Adrien Grand
        4. LUCENE-6228.patch
          95 kB
          Alan Woodward
        5. LUCENE-6228.patch
          119 kB
          Alan Woodward
        6. LUCENE-6228.patch
          134 kB
          Alan Woodward

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            romseygeek Alan Woodward
            jpountz Adrien Grand
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment