Hi All,
Recently we have upgraded our system to 6.3 to 6.5. When we execute query using Querybuilder API it is giving double when compare with query execution with Query debugger/query performance tool. It is giving blank values when we use Querybuilder API.It is picking proper custom index also ,in our 6.3 instance it is giving proper result.
For instance, when i execute query
Query debugger/query performance tool(/libs/granite/operations/content/diagnosistools/queryPerformance.html) - the result is 145 in total
Querybuilder API giving result - 290 in total result for same query. out of which 145 it is giving proper result 145 with blank records.
Please help me what might be causing the issue.
Regards,
Guru Pavan
Solved! Go to Solution.
Views
Replies
Total Likes
Do you use the exact same syntax in the queryPerformance and in query builder? Does it employ the same index in both cases?
Views
Replies
Total Likes
Do you use the exact same syntax in the queryPerformance and in query builder? Does it employ the same index in both cases?
Views
Replies
Total Likes
Views
Replies
Total Likes
Try reindexing that index. It helped resolve the case for one of my customers. They had somewhat similar scenario of migration from 6.3 to 6.5 and issues in retrieving the correct number of records using the QueryBuilder API with their custom index.
Views
Replies
Total Likes
Views
Replies
Total Likes
I also remember something. They had to make some changes according to QueryBuilder API for 6.5 to get the desired results.
Views
Replies
Total Likes
Views
Replies
Total Likes
If it doesn't help, could you please share your Query from we-retail section?
Try same in AEM vanilla instance as well. It seems issue could be with instance.
Views
Replies
Total Likes
Views
Replies
Total Likes
Views
Replies
Total Likes
Views
Replies
Total Likes
Views
Replies
Total Likes
Hi,
I tried your code and it gives me same results as UI
Here is the complete code - https://github.com/arunpatidar02/aem63app-repo/blob/master/java/SimpleQueryAPISearchServlet.java
Map<String, String[]> filteredQueryParamMap2 = new HashMap<>();
filteredQueryParamMap2.put("type", new String[]{"cq:Page"});
filteredQueryParamMap2.put("path", new String[]{"/content/we-retail"});
filteredQueryParamMap2.put("group.1_property", new String[]{"jcr:content/@jcr:created"});
filteredQueryParamMap2.put("group.1_property.operation", new String[]{"exists"});
filteredQueryParamMap2.put("group.2_property", new String[]{"jcr:content/@cq:lastModified"});
filteredQueryParamMap2.put("group.2_property.operation", new String[]{"exists"});
filteredQueryParamMap2.put("group.p.or", new String[]{"true"});
filteredQueryParamMap2.put("p.limit", new String[]{"-1"});
Query query = queryBuilder.createQuery(PredicateGroup.create(filteredQueryParamMap2), session);
SearchResult result = query.getResult();
logger.info("Result node {}", result.getTotalMatches());
Views
Replies
Total Likes