Jackrabbit up to at least 1.3 do not support multiple conditions in either xpath or sql query formats. If you need such a thing, you end up having to get two result sets and somehow merge them your self. I *think* 1.4 fixed that limitation, but to be honest I'm not sure.
--David Danilo Ghirardelli wrote: > > Hi all, > I'm working again on xpath queries and this time I couldn't get any good > solution. My problem: I'd like to have, in a single result set, all the > first level children (magnolia pages) of two different paths selected by > the user, that matches a condition. The difficult part is that one path > (say path2) may be a child of the other (say path1, so it's path2 = > path1/node), and that child may not even be included in the given > condition. > Maybe it's easier with the code: the two queries are like this: > > //path1/element(*, mgnl:content)[(not(@hide) or (@hide eq false()))] > > //path2/element(*, mgnl:content)[(not(@hide) or (@hide eq false()))] > > If you run them individually they work flawlessy and I get the results > I want, but how do I "join" them? There are no "union" nor "in" > capabilities in the xpath, and not even in the sql version of xpath > query. I know there is a | operator, but I didn't get how to use it > correctly, if I just do > > (//path1/element(*, mgnl:content)[(not(@hide) or (@hide eq false()))] | > //path2/element(*, mgnl:content)[(not(@hide) or (@hide eq false()))]) > > it seems like it's doing the intersection of the two node set more that > the union. > I tried a lot of strange combinations out of helplessness, and if you > want to try, this one (just as it is, with the fake paths) crashes not > only jackrabbit but also the freemarker template and the page of the JCR > Queries in adminCentral (maybe it's some bug of version 3.6.3): > > (//path1/element(*, mgnl:content) | //path2/element(*, > mgnl:content))[(not(@hide) or (@hide eq false()))] > > Any ideas about joining the two result sets in a single query (so I may > even sort them)? My patch solution was simply to do two queries and join > the result sets afterward in a function, but it's not very clear and I > think it's also slower than it should be (expecially when the result is > big). > > Thanks in advance, Danilo. > > > > ---------------------------------------------------------------- > For list details see > http://www.magnolia-cms.com/home/community/mailing-lists.html > To unsubscribe, E-mail to: <[email protected]> > ---------------------------------------------------------------- > ---------------------------------------------------------------- For list details see http://www.magnolia-cms.com/home/community/mailing-lists.html To unsubscribe, E-mail to: <[email protected]> ----------------------------------------------------------------
