Hi, If you know the property where this word can appear, you could use "like([property], '%\%\%myword\%\%%')". For "like", '%' is a wildcard (same as for SQL), so you must not escape the first and last character. But because you want to search for '%', you need to escape all other cases.
Regards, Thomas On 12/01/17 12:36, "Roy Teeuwen" <[email protected]> wrote: >Hey Thomas, > >Thanks for the info! > >I am using Jackrabbit Oak. (version 1.2.17). The thing is that I would >like to prefer to not find all the nodes that contain myword but not >%%myword%%, seeing as myword could for example be 'site', and this would >return too many results, I only want the results that really contain >'%%site%%', not just 'site' > >I have tried the \ escape character, unfortunately both returning the >same result as without escape character > > /jcr:root/myfolder//*[jcr:contains(., '\%\%myword\%\%')] > SELECT * FROM [nt:base] AS s WHERE ISDESCENDANTNODE([/myfolder]) and >CONTAINS(s.*, '\%\%myword\%\%') > >Do you see any other option without having to use >/jcr:root/myfolder//*[jcr:contains(., 'myword')] and iterate all the >results in java to check for %%myword%%? > >Thanks! >Roy > >> On 12 Jan 2017, at 11:52, Thomas Mueller <[email protected]> wrote: >> >> Hi, >> >> For jcr:contains, the escape character is '\'. Maybe the problem is that >> the fulltext index is not configured to index special characters such >>as % >> (it depends on the configuration; see "analyzed"). I would try this: >> >> /jcr:root/myfolder//*[jcr:contains(., 'myword')] >> >> >> There might be also a difference between Jackrabbit 2.x and Jackrabbit >> Oak. Which one (and which version) do you use? >> >> Regards, >> Thomas >> >> >> >> On 11/01/17 18:18, "Roy Teeuwen" <[email protected]> wrote: >> >>> Hey all, >>> >>> I am trying to do a query where the actual word I am looking for looks >>> like %%myword%%. I have tried the following in XPATH and JCR_SQL2, but >>>it >>> seems that the % sign is in both query languages a wildcard, meaning i >>> will find all the nodes containing myword instead of %%myword%%. How >>>can >>> I escape the % sign in either XPATH or JCR_SQL2? >>> >>> JCR_SQL2: >>> SELECT * FROM [nt:base] AS s WHERE ISDESCENDANTNODE([/myfolder]) and >>> CONTAINS(s.*, '%%myword%%') >>> >>> XPATH: >>> /jcr:root/myfolder//*[jcr:contains(., '%%myword%%')] >>> >>> Thanks! >>> Roy >> >
