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

Avatar

Avatar

niks1020

Avatar

niks1020

niks1020

07-11-2019

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

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar

jbrar

Employee

Avatar

jbrar

Employee

jbrar
Employee

07-11-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

Answers (5)

Answers (5)

Avatar

Avatar

jbrar

Employee

Avatar

jbrar

Employee

jbrar
Employee

08-11-2019

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

- Create the index under "oak:index" directory

- Use any OOTB indexes for reference.

Avatar

Avatar

Ravi_Pampana

MVP

Avatar

Ravi_Pampana

MVP

Ravi_Pampana
MVP

08-11-2019

Hi,

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

Having problem with Query builder when we have more records

Avatar

Avatar

sunjot16

Employee

Avatar

sunjot16

Employee

sunjot16
Employee

08-11-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

Avatar

Avatar

niks1020

Avatar

niks1020

niks1020

07-11-2019

Where to put the generated oakIndex from [2]?

Avatar

Avatar

Ankur_Khare

MVP

Avatar

Ankur_Khare

MVP

Ankur_Khare
MVP

07-11-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/