AEM 6.3 Query builder - How to search for case insensitive ? | Adobe Higher Education
Skip to main content
surenk
Level 4
April 6, 2020
해결됨

AEM 6.3 Query builder - How to search for case insensitive ?

  • April 6, 2020
  • 3 답변들
  • 6647 조회

How can we make the query to ignore case sensitivity of the `property.value` ? 

Using `orderby.case=ignore` is not helping.  

 

Our query:

path=/content/central-content/jcr:content/main/decline_letter property.value=0091A property=@letterNumber type=nt:unstructured orderby.case=ignore

 

이 주제는 답변이 닫혔습니다.
최고의 답변: nidhip010816

Hey,

 

You may do a custom implementation for this. The below doc may help - 

 

https://helpx.adobe.com/experience-manager/6-3/sites/developing/using/implementing-custom-predicate-evaluator.html

 

This one is not Adobe Doc but seems it will match your use case -> http://experience-aem.blogspot.com/2015/05/aem-6-sp2-query-builder-predicate-evaluator-ignore-case.html

 

Warm Regards,

Nidz

3 답변

Adobe Employee
April 7, 2020

Lucene is case sensitive.

 

You'd need to run the token through the LowerCaseFilter

 

Do you have a custom index for your queries? 

 

To accomplish this you'll need to modify an index definition in CRX/DE.

 

I'm going to assume you're using a custom index  

 

1) under  /oak:index/your-custom-index

2) add an analyzers nt:unstructured node

3) add a default nt:unstructured node under analyzers 

3) add a filters nt:unstructured node under default

4) add a LowerCase nt:unstructured node under filters

5) reindex the index.

 

surenk
surenk작성자
Level 4
April 7, 2020
Thanks for the suggestions. We are not using any index. This is a simple use-case. There will be about 10-20 nodes of content, service needs to return the content if the letter is found.
surenk
surenk작성자
Level 4
April 7, 2020

Using `fulltext` seemed to be helping/working.

path=/content/central-content/jcr:content/main/decline_letter fulltext=0091A property=@letterNumber type=nt:unstructured orderby.case=ignore

 

fulltext may not be a good solution is we have to be searching among a lot of nodes/data. In our case, we search for a very minimal number of nodes.

nidhip010816
Adobe Employee
Adobe Employee
April 8, 2020

Hey,

 

You may do a custom implementation for this. The below doc may help - 

 

https://helpx.adobe.com/experience-manager/6-3/sites/developing/using/implementing-custom-predicate-evaluator.html

 

This one is not Adobe Doc but seems it will match your use case -> http://experience-aem.blogspot.com/2015/05/aem-6-sp2-query-builder-predicate-evaluator-ignore-case.html

 

Warm Regards,

Nidz

surenk
surenk작성자
Level 4
May 8, 2020
Yes if there's lots of joins/rules to be applied, but unfortunately not all customers/dev-teams agree to custom code for trivial things.