lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dilip Nimkar (JIRA)" <>
Subject [jira] Created: (LUCENE-800) Incorrect parsing by QueryParser.parse() when it encounters backslashes (always eats one backslash.)
Date Tue, 13 Feb 2007 19:51:05 GMT
Incorrect parsing by QueryParser.parse() when it encounters backslashes (always eats one backslash.)

                 Key: LUCENE-800
             Project: Lucene - Java
          Issue Type: Bug
          Components: QueryParser
            Reporter: Dilip Nimkar

Test code and output follow. Tested  Lucene 1.9 version only. Affects hose who would index/search
for Lucene's reserved characters.

Description: When an input search string has a sequence of N (java-escaped) backslashes, where
N >= 2, the QueryParser will produce a query in which that sequence has N-1 backslashes.

    Analyzer analyzer = new WhitespaceAnalyzer();
    String[] queryStrs = {"item:\\\\",
                          "(item:\\\\ item:ABCD\\\\))",
                          "(item:\\\\ item:ABCD\\\\)"};
    for (String queryStr : queryStrs) {
      System.out.println("String queryStr = " + queryStr);
      Query luceneQuery = null;
      try {
        luceneQuery = new QueryParser("_default_", analyzer).parse(queryStr);
        System.out.println("luceneQuery.toString() = " + luceneQuery.toString());
      } catch (Exception e) {

OUTPUT (with remarks in comment notation:) 
String queryStr = item:\\
luceneQuery.toString() = item:\             //One backslash has disappeared. Searcher will
fail on this query.
String queryStr = item:\\*
luceneQuery.toString() = item:\*           //One backslash has disappeared. This query will
search for something unintended.
String queryStr = (item:\\ item:ABCD\\))
luceneQuery.toString() = item:\ item:ABCD\)     //This should have thrown a ParseException
because of an unescaped ')'. It did not.
String queryStr = (item:\\ item:ABCD\\)
class org.apache.lucene.queryParser.ParseException        //...and this one should not have,
but it did.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message