0

I am trying to search under 2 different nodes for a specific name. This works

/jcr:root/db067409/libraries/bd0b868d/_x0030_//*[@name="FIRST"]

But when I try to OR it with the second node like so...

/jcr:root/db067409/libraries/bd0b868d/_x0030_//*[@name="FIRST"]|/jcr:root/db067409/libraries/_x0033_78d57e4/_x0031_//*[@name="FIRST"]

I no longer get any search results. Please could someone point out what I've done wrong.

What I'd really like to do is along these lines; if I have /a/b/ID1/VERSION1 and /a/b/ID2/VERSION2 I'd like an xpath something like this /a/b/(ID1/VERSION1 or ID2/VERSION2)//*[@name="some name"].

4

2 に答える 2

1

答えはノーです。残念ながら、期待どおりに UnsupportedOperationException をスローしません。Jira に項目がありましたが、Xpath が非推奨になったため、無視されたと思います。

ユニオンが必要な場合は、JCR_SQL2 を使用してください。

于 2012-07-17T16:56:25.953 に答える
0

編集

このスレッドは、ユニオンのような機能が Jackrabbit 2.0 で利用可能であることを示していますが、それ以前は利用できません。

[結合] は、JCR Xpath または JCR-SQL では不可能ですが、JCR 2.0 (JCR-SQL2) の新しいクエリ モデルでは可能です。これは、CQ 5.3 / CRX 2.0 / Jackrabbit 2.0 以降でサポートされています。これらの結合はあまり最適化されていないことに注意してください。

実際、XPath は JCR 2.0 では非推奨です

JCR 1.0 では、JCR-SQL2 とは異なる SQL の方言と、XPath の方言が定義されています。これらの言語のサポートは非​​推奨です。

于 2012-07-17T13:45:59.093 に答える