Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

We retail - Traversal index

Avatar

Level 3

I am trying to make AEM search to search for "sonja" jacket with traversal node to see how much time it will need.


I disabled lucene and cqPageLucene indexes from oak:index, but can not find any nodes when trying this query in Explain Query tool:

/jcr:root/content/we-retail/us/en//element(*, cq:Page)[(jcr:contains(., 'sonja'))]

This is tested on We Retail project.

Why this does not find any nodes, and with indexes it does?

What will be needed for this to find pages that have "sonja" in their title? (or any other query, it is only important that I can run some query with traversal to compare its speed with lucene)

1 Accepted Solution

Avatar

Correct answer by
Employee Advisor

Cost of traversal shows up as "Infinity" and that's the reason AEM does not start the traversal.

Listing the costs from my local instance:

Cost with cqPageLucene: 2799

Cost with Lucene: 185827

Cost with Traversal: Infinity

I believe you should focus on COST rather than TIME as cost is directly related to time

View solution in original post

11 Replies

Avatar

Employee

What is your business case, that you need to disable indexes and force a traversal search? Traversal search will significantly affect performance and as a result, the AEM server might not responsive at all.

Avatar

Employee

Are you saying when the index is in use "the same" query returns results ?

Avatar

Employee Advisor

How did you disable the "cqPageLucene" index?

Avatar

Level 3

That is exactly what I need. I am doing research on how much improvement will lucene index bring.

I want to run query with traversal (and get results) and then do the same with lucene index included.

So no business case, just research.

Avatar

Level 3

I set property type=disabled on lucene index node under oak:index

Avatar

Employee Advisor

You also need to disable lucene index as AEM starts using "lucene" index when cqpageLucene is disabled.

Avatar

Employee Advisor

I tested this on my local instance and disabling both "lucene" and "cqpagelucene" will force the query below to use traversal:

/jcr:root/content/we-retail/us/en//element(*, cq:Page)[(jcr:contains(., 'sonja'))]

Screen Shot 2019-09-23 at 10.01.57 AM.png

Avatar

Level 3

I have the same situation, now I am interested why it does not return any nodes as search results?

And how could I achieve that?

Because speed of traversal search that does not find any node is 1ms so it can not be compared to lucene index when lucene actually goes through content and searches nodes (which takes more time)

Avatar

Correct answer by
Employee Advisor

Cost of traversal shows up as "Infinity" and that's the reason AEM does not start the traversal.

Listing the costs from my local instance:

Cost with cqPageLucene: 2799

Cost with Lucene: 185827

Cost with Traversal: Infinity

I believe you should focus on COST rather than TIME as cost is directly related to time

Avatar

Level 3

It makes sense, I just thought it should run "infinity cost" if there is no cost lower than that. I will mark your question as correct. Thank you