AEM Querybuilder API giving different result compare to Query debugger/query performance tool | Community
Skip to main content
gurup34365977
Level 2
June 2, 2020
Solved

AEM Querybuilder API giving different result compare to Query debugger/query performance tool

  • June 2, 2020
  • 4 replies
  • 7735 views

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

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by leoberliant

Do you use the exact same syntax in the queryPerformance and in query builder? Does it employ the same index in both cases?

4 replies

leoberliantAdobe EmployeeAccepted solution
Adobe Employee
June 2, 2020

Do you use the exact same syntax in the queryPerformance and in query builder? Does it employ the same index in both cases?

gurup34365977
Level 2
June 2, 2020
Yes I have used same syntax and same properties ,values,groups. Both the cases it is picked same index . As mentioned earlier only difference is with Query builder API I am getting double result, out of that half of the result is empty records.
sunjot16
Adobe Employee
Adobe Employee
June 2, 2020

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.

gurup34365977
Level 2
June 2, 2020
Actually when 6.3 to 6.5 upgrade done, same time reindex triggered and succeeded. I will do once again reindexing?
sunjot16
Adobe Employee
Adobe Employee
June 2, 2020

I also remember something. They had to make some changes according to QueryBuilder API for 6.5 to get the desired results.

gurup34365977
Level 2
June 2, 2020
Can you please provide exact details QueryBuilder API for 6.5
arunpatidar
Community Advisor
Community Advisor
June 3, 2020

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.

Arun Patidar
arunpatidar
Community Advisor
Community Advisor
June 4, 2020

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());

 

 

Arun Patidar