You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by Xiaojie Shen <Xi...@cybercomgroup.com> on 2010/08/26 09:30:10 UTC

How to limit webdav xpath search result

Hi all

I'm using xpath query for webdav search on Jackrabbit server as below.
String query = "//element(*, nt:file)[@jcr:content/D:as-createdby='aaa'] order by @jcr:content/D:as-lastmodified ascending";
SearchMethod searchMethod = new SearchMethod(uri, query, "xpath");
client.executeMethod(searchMethod);

Jackrabbit log didn't show any error.
25.08.2010 11:09:43 *DEBUG* QueryResultImpl: getResults(2147483647) limit=-1 (QueryResultImpl.java, line 274)
25.08.2010 11:09:44 *DEBUG* SortedLuceneQueryHits: getHits() 26648/32768 (SortedLuceneQueryHits.java, line 165)
25.08.2010 11:09:44 *DEBUG* QueryResultImpl: query executed in 578 ms (341) (QueryResultImpl.java, line 296)
25.08.2010 11:12:32 *DEBUG* QueryResultImpl: retrieved ScoreNodes in 167983 ms (22916) (QueryResultImpl.java, line 312)

But SearchMethod failed with error 500 Internal Server Error because of java.lang.OutOfMemoryError: Java heap space. My guess is that Jackrabbit cannot handle so many query results. Is there some way to limit the query result? JCR query provides setLimit(), but what/how shall be used for a webdav query?

Thanks in advance!
Shen