Incorrect parsing by QueryParser.parse() when it encounters backslashes (always
eats one backslash.)
----------------------------------------------------------------------------------------------------
Key: LUCENE-800
URL: https://issues.apache.org/jira/browse/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.
TEST CODE:
Analyzer analyzer = new WhitespaceAnalyzer();
String[] queryStrs = {"item:\\\\",
"item:\\\\*",
"(item:\\\\ item:ABCD\\\\))",
"(item:\\\\ item:ABCD\\\\)"};
for (String queryStr : queryStrs) {
System.out.println("--------------------------------------");
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) {
System.out.println(e.getClass().toString());
}
}
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]