Lucene - Core
  1. Lucene - Core
  2. LUCENE-881

QueryParser escaping/parsin issue with strings starting/ending with ||

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Trivial Trivial
    • Resolution: Fixed
    • Affects Version/s: 2.1, 2.2
    • Fix Version/s: None
    • Component/s: core/queryparser
    • Labels:
      None
    • Environment:

      MAC OS X 10.4.7, J2SE 5.0 Release 4

    • Lucene Fields:
      New

      Description

      There is a problem with query parser when search string starts/ends with ||. When string contains || in the middle like 'something || something' everything runs without a problem.

      Part of code:
      searchText = QueryParser.escape(searchText);
      QueryParser parser = null;
      parser = new QueryParser(fieldName, new CustomAnalyser());
      parser.parse(searchText);

      CustomAnalyser class extends Analyser. Here is the only redefined method:

      @Override
      public TokenStream tokenStream(String fieldName, Reader reader)

      { return new PorterStemFilter( (new StopAnalyzer()).tokenStream(fieldName, reader)); }

      I have tested this on Lucene 2.1 and latest source I have checked-out from SVN (Revision 538867) and in both cases parsing exception was thrown.

      Part of Stack Trace (Lucene - SVN checkout - Revision 538867):
      Cannot parse 'someting ||': Encountered "<EOF>" at line 1, column 11.
      Was expecting one of:
      <NOT> ...
      "+" ...
      "-" ...
      "(" ...
      "*" ...
      <QUOTED> ...
      <TERM> ...
      <PREFIXTERM> ...
      <WILDTERM> ...
      "[" ...
      "{" ...
      <NUMBER> ...

      org.apache.lucene.queryParser.ParseException: Cannot parse 'someting ||': Encountered "<EOF>" at line 1, column 11.
      Was expecting one of:
      <NOT> ...
      "+" ...
      "-" ...
      "(" ...
      "*" ...
      <QUOTED> ...
      <TERM> ...
      <PREFIXTERM> ...
      <WILDTERM> ...
      "[" ...
      "{" ...
      <NUMBER> ...

      at org.apache.lucene.queryParser.QueryParser.parse(QueryParser.java:150)

      Part of Stack Trace (Lucene 2.1):
      Cannot parse 'something ||': Encountered "<EOF>" at line 1, column 12.
      Was expecting one of:
      <NOT> ...
      "+" ...
      "-" ...
      "(" ...
      "*" ...
      <QUOTED> ...
      <TERM> ...
      <PREFIXTERM> ...
      <WILDTERM> ...
      "[" ...
      "{" ...
      <NUMBER> ...

      org.apache.lucene.queryParser.ParseException: Cannot parse 'something ||': Encountered "<EOF>" at line 1, column 12.
      Was expecting one of:
      <NOT> ...
      "+" ...
      "-" ...
      "(" ...
      "*" ...
      <QUOTED> ...
      <TERM> ...
      <PREFIXTERM> ...
      <WILDTERM> ...
      "[" ...
      "{" ...
      <NUMBER> ...

      at org.apache.lucene.queryParser.QueryParser.parse(QueryParser.java:149)

      1. lucene-881.patch
        2 kB
        Michael Busch

        Activity

        Slobodan Marjanovic created issue -
        Michael Busch made changes -
        Field Original Value New Value
        Assignee Michael Busch [ michaelbusch ]
        Michael Busch made changes -
        Priority Major [ 3 ] Trivial [ 5 ]
        Michael Busch made changes -
        Attachment lucene-881.patch [ 12357650 ]
        Michael Busch made changes -
        Resolution Fixed [ 1 ]
        Status Open [ 1 ] Resolved [ 5 ]
        Mark Thomas made changes -
        Workflow jira [ 12404177 ] Default workflow, editable Closed status [ 12564549 ]
        Mark Thomas made changes -
        Workflow Default workflow, editable Closed status [ 12564549 ] jira [ 12584954 ]

          People

          • Assignee:
            Michael Busch
            Reporter:
            Slobodan Marjanovic
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development