Expand my Community achievements bar.

SOLVED

Query Regarding Full Text Search

Avatar

Level 2

Hi All,

 

Is there any way to make use of non english words like "español" as fulltext in Querybuilder  API?

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi @binoyp,

 

Full text search will be able to find español in the content irrespective of language. Please see below OOTB groovy script which is able to find all the references of español in the content

 

def predicates = [
"path": "/content",
"fulltext": "español"
]

def query = createQuery(predicates)

query.hitsPerPage = 10

def result = query.result

println "${result.totalMatches} hits, execution time = ${result.executionTime}s\n--"

result.hits.each { hit ->
println "hit path = ${hit.node.path}"
}

 

Please check if UTF-8 is enabled in Apache Sling Request Parameter Handling configuration.

View solution in original post

9 Replies

Avatar

Community Advisor

The QueryBuilder works on the given predicates. If you're using non-english words and searching in those specific locales, it should work. For example: searching "español" in /content/yourproject/es/*.

 

What problem are you facing or whats the requirement?

 

Thanks,

Singaiah

Avatar

Level 2
Hi Singaiah, the exact doubt is that when i try passing the fulltext as a parameter in a querybuilder servlet for searching the pages. These special characters throw a bad request error . How can we work around this.

Avatar

Community Advisor
also, whats version of AEM are you on? You first make sure you get the right input before passing that to QueryBuilder API? Also manually query using the same string and see if you get results.

Avatar

Correct answer by
Community Advisor

Hi @binoyp,

 

Full text search will be able to find español in the content irrespective of language. Please see below OOTB groovy script which is able to find all the references of español in the content

 

def predicates = [
"path": "/content",
"fulltext": "español"
]

def query = createQuery(predicates)

query.hitsPerPage = 10

def result = query.result

println "${result.totalMatches} hits, execution time = ${result.executionTime}s\n--"

result.hits.each { hit ->
println "hit path = ${hit.node.path}"
}

 

Please check if UTF-8 is enabled in Apache Sling Request Parameter Handling configuration.

Avatar

Level 2
Hi Chitra, the exact doubt is that when i try passing the fulltext as a parameter in a querybuilder servlet for searching the pages. These special characters throw a bad request error . How can we work around this.

Avatar

Community Advisor
Hi @binoyp, Can you please check if UTF-8 is enabled in Apache Sling Request Parameter Handling configuration.

Avatar

Level 2
Hi Chitra, ive chcked for the UTF settings , it is enabled. One observation i made is that it seems to be working on a new custom path that im registering it on. For the existing path's it seems to be throwing a bad request error at the ajax call. I've tried encodeURI and encodeURIComponent for encoding the fulltext term. That doesnt help as well