Hello,

It may work for you at the moment, but a query like
'//*[jcr:like(fn:lower-case(@propertyName), '%article%')]' is
*extremely* inefficient. using the jcr:like in combination with a prefix
'%' will most certainly lead to very slow results when the number of
hits grows (even for quite small repositories). If you really need it,
and the number of nodes will grow, you should really look for a
different solution IMO (like using a nodetype which you search for)

Regards Ard

> 
> Alessandro,
> 
> Thanks for explaining. Now I understood my mistake.
> The mistake I did was I had uppercase letters in the pattern. 
> Thats why I was not getting the expected results.
> After I changed everything to lower case in the pattern, 
> everything works fine.
> 
> Thank you and others once again for helping me out.
> 
> Regards,
> Prakash
> 
> 
> Alessandro Bologna wrote:
> > Prakash,
> >
> > maybe I am still not understanding, but 
> > //*[jcr:like(fn:lower-case(@propertyName), '%article%')] should 
> > actually do what you want. The property values are 
> converted to lower 
> > case ("MyArtcilexxx", "MyARTicleyyy" => "myartcilexxx",
> > "myarticleyyy") by the lower-case function, and they are 
> compared to 
> > the pattern that happens to have lower case characters 
> there only (so 
> > you should use lowercase letters on the pattern, of course).
> >
> > Did you try it?
> >
> > Alessandro
> >
> >
> > Prakash Reddy K. L. V. wrote:
> >>
> >> Alessandro,
> >>
> >> This does not help. fn:lower-case will just convert the letters to 
> >> lower case.
> >> May be I was not clear in my earlier mail.
> >> I want to retrieve all nodes whose property has values like 
> >> "MyArtcilexxx", "MyARTicleyyy", "artcilezzzz" and so on.
> >> I want something like String.equalsIgnoreCase("article") .
> >>
> >> Regards,
> >> Prakash
> >>
> >> Alessandro Bologna wrote:
> >>> Yes,
> >>> Try using //*[jcr:like(fn:lower-case(@propertyName), 
> '%article%')] 
> >>> Alessandro
> >>>
> >>>
> >>> Prakash Reddy K. L. V. wrote:
> >>>>
> >>>> Hi Alessandro,
> >>>>
> >>>> Thanks for your response.
> >>>> The query //*[jcr:like(@propertyName, '%article%')] 
> seems to work 
> >>>> for me. But I have a problem here. It seems to be case sensitive.
> >>>> Is there a way to tell jackrabbit to ignore case??
> >>>>
> >>>> Regards,
> >>>> Prakash
> >>>>
> >>>>
> >>>> Alessandro Bologna wrote:
> >>>>> Hi,
> >>>>>
> >>>>> you can't search for substrings of the node name, but if you do 
> >>>>> store the node name in a property, then you can use either 
> >>>>> jcr:like or jcs:contains (not just "contains", the XPATH in 
> >>>>> Jackrabbit doesn't support it).
> >>>>>
> >>>>> So try:
> >>>>>     //*[jcr:contains(@propertyName,'article')]
> >>>>>    or:
> >>>>>     //*[jcr:like(@propertyName, '%article%')]
> >>>>>
> >>>>> Further reading here
> >>>>> http://www.theserverside.com/tt/articles/article.tss?l=JCRPract
> >>>>> and of course the JSR-170 specs.
> >>>>>
> >>>>> Hope it helps.
> >>>>> Alessandro
> >>>>>
> >>>>>
> >>>>>
> >>>>> Prakash Reddy K. L. V. wrote:
> >>>>>>
> >>>>>> Hi,
> >>>>>>
> >>>>>> I am using jackrabbit as my content repository.
> >>>>>> Is there a way to search for nodes whose name contains a 
> >>>>>> particular word using XPath?
> >>>>>> For example I want to search for all the nodes whose name 
> >>>>>> contains "article".
> >>>>>>
> >>>>>> I tried this query : /jcr:root/*article* This does not work.
> >>>>>>
> >>>>>> I also tried storing the name as property of the node 
> and tried 
> >>>>>> this query :
> >>>>>> /jcr:root/[EMAIL PROTECTED]''article"]
> >>>>>> This does not even get those nodes for which the value of the 
> >>>>>> property is "article".
> >>>>>>
> >>>>>> Is there any other way to achieve this ?
> >>>>>>
> >>>>>> Thanks,
> >>>>>> Prakash
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>
> >>
> >
> 
> 

Reply via email to