java.lang.UnsupportedOperationException: The query read or traversed more than 100000 nodes. | Community
Skip to main content
niks1020
Level 2
November 7, 2019
Solved

java.lang.UnsupportedOperationException: The query read or traversed more than 100000 nodes.

  • November 7, 2019
  • 6 replies
  • 6778 views

Hi ,

I am facing an issue in running the query through my deployed code in AEM.

The map is created as below:

Map<String, String> map = new HashMap<>();

map.put('path', 'path-here');

map.put('type','oak:Unstructured');

map.put("1_property", 'content-type');

map.put("1_property.value", 'value');

map.put("2_property", 'second-property');

map.put("2_property.value", 'true');

map.put("property.and", true);

map.put("orderby",'property to be ordered by');

map.put("p.limit", "-1");

The query.getResult() returns UnsupportedOperationException

When I run the same query in CRX/DE with SQL format I do not face this kind of exception.

select * from oak:Unstructured where jcr:path like 'path-here%'

and contains([content-type], 'value')

and [second-property]='true'

I noticed one thing: If I execute the above SQL query in CRX/DE lite with just changing "contains" to "=" sign as below, I get the below error in CRX/DE lite as well.

"The query read or traversed more than 10000 nodes. To avoid affecting other tasks, processing was stopped."

select * from oak:Unstructured where jcr:path like 'path-here%'

and [content-type]= 'value'

and [second-property]='true'

Can somebody help me?

Thanks,

Nikhil

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 user05162

Use AEM Plugin to find the query that gets triggered and use the oakutils tool to create an index.

The 100000 limit is set at [3] from the JMX console to prevent the AEM instance running out of memory when a traversal query is triggered.

[1] https://chrome.google.com/webstore/detail/aem-chrome-plug-in/ejdcnikffjleeffpigekhccpepplaode

[2] Oak Utilities : Index Definition Generator

[3] <host>:<port>/system/console/jmx/org.apache.jackrabbit.oak%3Aname%3Dsettings%2Ctype%3DQueryEngineSettings

6 replies

Ankur_Khare
Community Advisor
Community Advisor
November 7, 2019

You need create custom index so that it doesnt search over entire repository.

Refer below-

http://www.aemcq5tutorials.com/tutorials/aem-oak-indexing-comprehensive-guide/

user05162Adobe EmployeeAccepted solution
Adobe Employee
November 7, 2019

Use AEM Plugin to find the query that gets triggered and use the oakutils tool to create an index.

The 100000 limit is set at [3] from the JMX console to prevent the AEM instance running out of memory when a traversal query is triggered.

[1] https://chrome.google.com/webstore/detail/aem-chrome-plug-in/ejdcnikffjleeffpigekhccpepplaode

[2] Oak Utilities : Index Definition Generator

[3] <host>:<port>/system/console/jmx/org.apache.jackrabbit.oak%3Aname%3Dsettings%2Ctype%3DQueryEngineSettings

niks1020
niks1020Author
Level 2
November 7, 2019

Where to put the generated oakIndex from [2]?

Adobe Employee
November 8, 2019

- Go to <host>:<port>/crx/de

- Create the index under "oak:index" directory

- Use any OOTB indexes for reference.

sunjot16
Adobe Employee
Adobe Employee
November 8, 2019

Try generating an index on the query using the following tool:

Oak Utilities : Index Definition Generator

and then create indexes as per the following docs:

Oak Queries and Indexing

Oak Queries and Indexing

Ravi_Pampana
Community Advisor
Community Advisor
November 8, 2019

Hi,

You can check below link which has details for the same issue

Having problem with Query builder when we have more records