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

Make BooleanQuery immutable

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

    Details

    • Type: Task
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 5.3, 6.0
    • Component/s: None
    • Labels:
      None
    • Lucene Fields:
      New

      Description

      In the same spirit as LUCENE-6531 for the PhraseQuery, we should make BooleanQuery immutable.

      The plan is the following:

      • create BooleanQuery.Builder with the same setters as BooleanQuery today (except setBoost) and a build() method that returns a BooleanQuery
      • remove setters from BooleanQuery (except setBoost)

      I would also like to add some static utility methods for common use-cases of this query, for instance:

      • static BooleanQuery disjunction(Query... queries) to create a disjunction
      • static BooleanQuery conjunction(Query... queries) to create a conjunction
      • static BooleanQuery filtered(Query query, Query... filters) to create a filtered query

      Hopefully this will help keep tests not too verbose, and the latter will also help with the FilteredQuery derecation/removal.

        Attachments

        Issue Links

          Activity

            People

            • Assignee:
              jpountz Adrien Grand
              Reporter:
              jpountz Adrien Grand

              Dates

              • Created:
                Updated:
                Resolved:

                Issue deployment