Hi,
Whenever a UNION operator ("|") is encountered in an XPath, the XPathQueryResolver gives up on using indexes to resolve the query and reverts to a collection scan. This can have horrible performance consequences for a large database even if the proper indexes are in place.
A suggested fix is to modify the XPathQueryResolver to perform UNION operation through an index OR operation. I filed a bug report (19024) describing this problem and attached a version of XPathQueryResolver modified to use indexes to resolve UNION operations.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19204
The fixed version of XPathQueryResolver is attached to the bug report if anyone with commit powers would care to take a look and perhaps commit it.
-Terry