Hi,
We have a Query that we are having performance problems with. The people doing
load testing are saying we will need a cluster of 5, 4 core servers to support
600 concurrent users. For us this is not good, since that not many users and a
lot of hardware.
The query is:
//*...@sling:resourceType='sakai/user-home']/*[fn:name() = 'public' or
fn:name() = 'pages']//*[jcr:contains(.,'keyword')]]
The content structure is of the form:
/_user/i/ie/ieb/ieb2/ieb23389
- sling:resourceType = sakai/user-home
public/*/*/*/*.....*/ somecontent
pages/*/*/*/* .... */someothercontent
where there may be many nodes (many = thousands) that match the query per
"sakai/user-home" node, but we only want to get a list "sakai/user-home" nodes.
At the moment we are having to iterate through all the nodes (10,000) and
filter them to get a distinct list (10)
We have been looking at using aggregates in the index configuration, but with
no success yet.
Is there a better way of formulating the XPath to just return the nodes we want
?
Ian