19 May 2013 20:50
classic.QueryParser - bug or new behavior?
Scott Smith <ssmith <at> mainstreamdata.com>
2013-05-19 18:50:42 GMT
2013-05-19 18:50:42 GMT
I just upgraded from lucene 4.1 to 4.2.1. We believe we are seeing some different behavior.
I'm using org.apache.lucene.queryparser.classic.QueryParser. If I pass the string
"20110920/EXPIRED" (w/o quotes) to the parser, I get:
org.apache.lucene.queryparser.classic.ParseException: Cannot parse '20110920/EXPIRED': Lexical
error at line 1, column 17. Encountered: <EOF> after : "/EXPIRED"
at org.apache.lucene.queryparser.classic.QueryParserBase.parse(QueryParserBase.java:131)
We believe this used to work.
I tried googling for this and found something that said I should use QueryParser.escape() on the string
before passing it to the parser. However, that seems to break phrase queries (e.g., "John Smith" - with the
quotes; I assume it's escaping the double-quotes and doesn't realize it's a phrase).
Since it is a forward slash, I'm confused why it would need escaping of any of the characters in the string
with the "/EXPIRED".
Has anyone seen this?
Scott
RSS Feed