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

Add a simple QueryParser to parse human-entered queries.


    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 4.7, 6.0
    • None
    • None
    • New


      I would like to add a new simple QueryParser to Lucene that is designed to parse human-entered queries. This parser will operate on an entire entered query using a specified single field or a set of weighted fields (using term boost).

      All features/operations in this parser can be enabled or disabled depending on what is necessary for the user. A default operator may be specified as either 'MUST' representing 'and' or 'SHOULD' representing 'or.' The features/operations that this parser will include are the following:

      • AND specified as '+'
      • OR specified as '|'
      • NOT specified as '-'
      • PHRASE surrounded by double quotes
      • PREFIX specified as '*'
      • PRECEDENCE surrounded by '(' and ')'
      • WHITESPACE specified as ' ' '\n' '\r' and '\t' will cause the default operator to be used
      • ESCAPE specified as '\' will allow operators to be used in terms

      The key differences between this parser and other existing parsers will be the following:

      • No exceptions will be thrown, and errors in syntax will be ignored. The parser will do a best-effort interpretation of any query entered.
      • It uses minimal syntax to express queries. All available operators are single characters or pairs of single characters.
      • The parser is hand-written and in a single Java file making it easy to modify.


        1. LUCENE-5336.patch
          46 kB
          Robert Muir
        2. LUCENE-5336.patch
          45 kB
          Jack Conradson
        3. LUCENE-5336.patch
          45 kB
          Jack Conradson



            Unassigned Unassigned
            jdconradson Jack Conradson
            3 Vote for this issue
            11 Start watching this issue