[
https://issues.apache.org/jira/browse/JCR-2733?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12904122#action_12904122
]
Alexander Klimetschek commented on JCR-2733:
--------------------------------------------
This is ok, as Jackrabbit wants to make the Lucene full-text search language
available through jcr:contains. If you don't want that, escaping using
double-quotes as you did, is the way to go.
Not sure, but maybe this exception which seems to come only because there is no
operand before the OR, could be handled more gracefully. Could you post the
full stacktrace to see if this exception is thrown inside Lucene or by
Jackrabbit.
> RepositoryException in xpath query with the "OR" keyword
> --------------------------------------------------------
>
> Key: JCR-2733
> URL: https://issues.apache.org/jira/browse/JCR-2733
> Project: Jackrabbit Content Repository
> Issue Type: Bug
> Components: query, xpath
> Affects Versions: 1.6.2, 2.1.0, 2.1.1
> Reporter: fabrizio giustina
>
> Any string literal starting with "OR ", e.g.:
> //*[jcr:contains(@title, 'OR ME')]
> ends up in a javax.jcr.RepositoryException:
> Exception building query: org.apache.lucene.queryParser.ParseException:
> Cannot parse 'OR ME': Encountered " <OR> "OR "" at line 1, column 0.
> I see this is due to the "OR" keyword interpreted by Lucene, like described
> in http://stackoverflow.com/questions/1311304/keyword-or-and-search-in-lucene
> Is this expected? Shouldn't jackrabbit escape the input string before
> creating the lucene query, since this is implementation-specific and OR
> should not AFAIK be a reserved word in properly delimited string literals in
> xpath queries?
> Also note that the similar "AND" keyword doesn't cause any problem.
> In order to fix it I must check and replace any input string starting with
> "OR" adding quotes or lowercasing:
> //*[jcr:contains(@title, '"OR" ME')]
> //*[jcr:contains(@title, 'or ME')]
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.