jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marcel Reutegger <marcel.reuteg...@gmx.net>
Subject Re: <basicsearch> [was: Any commercial real world implementations out there]
Date Mon, 21 Aug 2006 10:34:03 GMT
Julian Reschke wrote:
>> *Map a DASL <basicsearch> to an equivalent JCR/Xquery-Xpath query and
>> re-map the results back. This could be shared with the JCR expert group
>> if this works out, or share deficiencies related to JCR-implementations
>> with WebDAV interfaces.
>> *Look at a writing a new QueryEngine/Handler
>> (http://jackrabbit.apache.org/doc/arch/operate/query.html) specifically
>> for DASL <basicsearch>.
>> Based on Julian's feedback, it may be that option 1, mapping to an
>> equivalent Xpath, is not be a good approach after all.

I would go with a 3rd approach: Implement a QueryTreeBuilder.
See also my comments on issue: 

> When I'm done, I may be able to provide a more complete list of feature 
> mismatches. For instance, in addition to the scope problems I mentioned 
> earlier, there's also the problem that DASL/basicsearch uses the SQL 
> logic for boolean comparisons 
> (<http://greenbytes.de/tech/webdav/draft-reschke-webdav-search-latest.html#three-valued-logic>).

> while JCR doesn't (as far as I can tell, that is...).

Yes, this is correct. JCR is based on XPath where expressions are not 
tree-valued. E.g. the expression:


on a JCR Node without such a property returns false, whereas with 
three-valued-logic this would return unknown.
I'm not sure if that actually impacts query execution and what a query 
will return.

E.g assume there is a node with a @bar property with value 10 but no 
@foo property.

@foo and @bar=10

does not match nodes in JCR nor basicsearch semantic, even though the 
result of the expression in JCR is false whereas it is unknown in 
basicsearch. Similarly if there is an expression like the following:

@foo or @bar=10

in both JCR and basicsearch terms the result is true, even though 
basicsearch would interpret the expression as
'UNKNOWN or true' = true.


View raw message