fulltext in query doesn't work for partial search term | Community
Skip to main content
New Participant
March 22, 2021
Solved

fulltext in query doesn't work for partial search term

  • March 22, 2021
  • 4 replies
  • 4401 views

Hello 

We are not getting results for partial keywords search by query.

e.g.

It doesn't return results for below query

type=cq:Page
path=/content/mysite/us/en/resources
fulltext=Ind
 
But it gives results for below one.
type=cq:Page
path=/content/mysite/us/en/resources
fulltext=India
 
Is this an expected behavior or am I missing anything here?
 
Thanks
Swapnil
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 salamswapnil

Thank you everyone for your responses. We are able to achieve expected behavior (partial keyword search) by appending '*' in the fulltext term.

e.g. Below query gives all the results having text "Ind[xxxxx]". This is similar to wildcard character search in lucene.

type=cq:Page
path=/content/mysite/us/en/resources
fulltext=Ind*
 
PS : It comes with slight performance overhead. 

4 replies

salamswapnilAuthorAccepted solution
New Participant
April 5, 2021

Thank you everyone for your responses. We are able to achieve expected behavior (partial keyword search) by appending '*' in the fulltext term.

e.g. Below query gives all the results having text "Ind[xxxxx]". This is similar to wildcard character search in lucene.

type=cq:Page
path=/content/mysite/us/en/resources
fulltext=Ind*
 
PS : It comes with slight performance overhead. 
bilal_ahmad
New Participant
March 22, 2021

Hey @salamswapnil

 

The results you are getting are just right, as you're making use of fulltext search. You can create synonyms(a text file) and then based on your search text(like Ind = you'd expect to fetch it the result for India). Nicely explained by @albinis1 on his blog: https://medium.com/tech-learnings/how-to-enable-search-synonyms-in-aem-with-lucene-ccb780375eb4 

 

Hope this would help!

 

Thanks,

Bilal.

Asutosh_Jena_
New Participant
March 22, 2021

Hi @salamswapnil 

The term "full-text" itself contains the answer. Whenever we use a full-text search as the predicate, AEM will internally try to look for any occurances where it can find the exact search text as a whole word.


It's exactly works in the same way as SQL2 below:
SELECT * FROM [nt:unstructured] WHERE ISDESCENDANTNODE('/jcr:root/content/mysite/us/en/resources') AND LOWER([prop]) LIKE "%Ind%" ORDER BY [cq:lastModified] desc


As you mentioned you are correct and it will always return the full text result if found any.

Hope this helps!
Thanks!

Rajalakshmi
New Participant
March 22, 2021

Hi @salamswapnil, full-text field searches for the whole word that matches the search key anywhere in webpages.

If your search key is "Ind" then it searches for Ind everywhere on pages

FYR => tothenew.com/blog/full-text-search-in-aem-using-query-builder/

 

 

 

kautuk_sahni
Employee
March 23, 2021
@rajalakshmi, Thank you for participating in the AEM community. Good to have AEM SME's like you. Looking forward to see you more into the community. Keep it up.
Kautuk Sahni