Expand my Community achievements bar.

SOLVED

Xpath Search using Querymanager and getting totalmatch count

Avatar

Level 3

I am currently using xpath search for several reasons. However I didn't find TotalMatch Count on QueryResult class like SearchResult object using QueryBuilder.

            QueryManager qm=session.getWorkspace().getQueryManager();
            Query query = qm.createQuery(xpathQuery.toString(), Query.XPATH);

            query.setOffset(100);

            query.setLimit(25);
            QueryResult result = query.execute();

            NodeIterator iterator = result.getNodes();

 

I am searching for results on 4th page with a result limit of 25.

QueryResult class does not have any count method. I have to get NodeIterator or RowIterator to navigate to the result. These iterators will hold only number of rows set in setLimit method.

Can Someone help getting result count even after setting offset and limit on the query?

Thanks for your help!

Venkat

1 Accepted Solution

Avatar

Correct answer by
Administrator

Hi 

As far as i know, there is no function in QueryManager to do the same.

Only way to achieve it is by RowIterator.

Example:

RowIterator rowIterator = result.getRows();

while(rowIterator.hasNext()){

Row row = rowIterator.nextRow();

Value[] values = row.getValues();

}

I hope this would help you.

Thanks and Regards

Kautuk Sahni



Kautuk Sahni

View solution in original post

2 Replies

Avatar

Correct answer by
Administrator

Hi 

As far as i know, there is no function in QueryManager to do the same.

Only way to achieve it is by RowIterator.

Example:

RowIterator rowIterator = result.getRows();

while(rowIterator.hasNext()){

Row row = rowIterator.nextRow();

Value[] values = row.getValues();

}

I hope this would help you.

Thanks and Regards

Kautuk Sahni



Kautuk Sahni