jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dave Brosius" <dbros...@mebigfatguy.com>
Subject Re: debugging a query that returns no results
Date Fri, 28 Mar 2008 12:50:26 GMT
Thank you, that worked.

If I understand then, if a query comes in starting with / and not with 
/jcr:root it is always an error.

Perhaps a check could be added to the query parser to throw an exception in 
this case.

but thanks again.
dave
----- Original Message ----- 
From: "Marcel Reutegger" <marcel.reutegger@gmx.net>
To: <users@jackrabbit.apache.org>
Sent: Friday, March 28, 2008 5:42 AM
Subject: Re: debugging a query that returns no results


> Hi Dave,
>
> Dave Brosius wrote:
>>    When i do a search with a query string such as
>>
>> //*[@jcr:primaryType = 'prm:File' and jcr:contains(@prm:Title, '"lazy"')] 
>> order by jcr:score() descending
>>
>> it works as i expect. When however i limit the sub tree like
>>
>> /prm:Projects/prm:Project3781/prm:Documents//*[@jcr:primaryType = 
>> 'prm:File' and jcr:contains(@prm:Title, '"lazy"')] order by jcr:score() 
>> descending
>>
>> where the /prm:Projects/prm:Project3781/prm:Documents part is retrieved 
>> from a call to node.getPath()
>>
>> nothing is returned
>
> you forgot to prefix the statement with /jcr:root.
>
> from the spec:
>
> <quote>
> The context node of an XPath query is the XML node relative to which the 
> query expression is evaluated.
>
> A relative XPath statement (one that does not have a leading /) will be 
> interpreted relative to the root node of the workspace, which, in the XML 
> document view is the top-most XML element, <jcr:root>. This means that one 
> should not include jcr:root as the first segment in a relative XPath 
> statement, since that element is already the default context node.
>
> An absolute XPath (one with a leading /), in contrast, will be interpreted 
> relative to a position one level above <jcr:root>. This means that an 
> absolute XPath must either begin with // or with /jcr:root in order to 
> match anything at all.
> </quote>
>
>> I've walked thru the code till i get to the lucene execute query, at 
>> which point i don't have source.
>
> what sources are you missing exactly? all code should be available in 
> source form.
>
>> As a general question, are there any tips for figuring out why a search 
>> is returning no results
>
> unfortunately jackrabbit has very poor support for analyzing query 
> execution. It currently boils down to debugging java code.
>
> debug messages about node sets at different states of the query would 
> probably be a first easy step to improve the situation. I've filed a jira 
> issue: JCR-1507.
>
> regards
>  marcel 


Mime
View raw message