Lucene - Core
  1. Lucene - Core
  2. LUCENE-4961

Filters should return null if they don't accept documents


    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 4.3, 4.2.1
    • Fix Version/s: 4.4, Trunk
    • Component/s: core/search
    • Labels:
    • Lucene Fields:
      New, Patch Available


      Today we document that Filter#getDocIdSet can return null if it doesn't accept documents. Infact in the code we sometimes return null and sometimes return DocIdSet.EMPTY_DOCIDSET. Conceptually there is nothing wrong with that but apparently we are not applying our optimisations accordingly ie. some parts of the code check for the EMPTY_DOCIDSET and all check for null. this is also a source of potential bugs like in LUCENE-4940 and I think there are still problems in the ToChildBlock query.

      Anyways, I think we should be consistent here about when to apply the optimisations and for the sake of caching in CachingWrapperFilter we should make the EMPTY_DOCIDSET and impl detail.

      1. LUCENE-4961.patch
        32 kB
        Simon Willnauer


        Steve Rowe made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Simon Willnauer made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Assignee Simon Willnauer [ simonw ]
        Resolution Fixed [ 1 ]
        Simon Willnauer made changes -
        Field Original Value New Value
        Attachment LUCENE-4961.patch [ 12580678 ]
        Simon Willnauer created issue -


          • Assignee:
            Simon Willnauer
            Simon Willnauer
          • Votes:
            0 Vote for this issue
            2 Start watching this issue


            • Created: