How to properly escape OR and AND in lucene query?
analyzer, lucene
Solution
There are a number of ways to escape this, the cleaner is to escape AND, OR, & NOT with leading backslashes eg:
`\\AND \\OR \\NOT`
alternately, the code parser will not parse their lowercase equivalents as operators
Problem
When I passed in a query "state:OR" lucene gave an error because it considers "OR" as a keyword for boolean clause, but here I actually man the abbreviation of Oregon, the state. I have seen that quoting OR so the query becomes 'state:"OR"' makes it work. but this doesn't sound like a very good approach, since I'll have to do a string substitution for EACH of the keywords that lucene uses: AND OR NOT and others?? I don't how many I tried directly constructing the query instead of doing queryParser.parse(), but it seems that this does not go through the analyzers, which is a big problem.