Ampersand (@ character) in querybuilder. What is its use? | Community
Skip to main content
jayv25585659
New Participant
April 20, 2023
Solved

Ampersand (@ character) in querybuilder. What is its use?

  • April 20, 2023
  • 3 replies
  • 1253 views

As above. I have a query where I used @ like this (I can’t remember the exact query. I’m on my iPad)


path=/content

1_property=jcr:content/cq:lastModified

 

As an example, I’ll get 500 results. But if I use 

 

1_property=@jcr:content/cq:lastModified

 

i get 501.


Can someone please explain the use of ampersand in this situation.  Thanks

 

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 ManviSharma

Hi,

 

The @ symbol in AEM Query Builder denotes a full-text search. When you use @ before a property name, it tells Query Builder to perform a full-text search on that property.

In your example, using 1_property=jcr:content/cq:lastModified would search for the exact value of jcr:content/cq:lastModified in the 1_property field. This would return 500 results.

On the other hand, using 1_property=@jcr:content/cq:lastModified would perform a full-text search on the jcr:content/cq:lastModified property. This means that it would search for any words or phrases that match the property value, rather than searching for the exact value itself. This could potentially return more results, which is why you're seeing 501 results instead of 500.

It's important to note that full-text search can be more resource-intensive than exact value search, so it's a good idea to use it judiciously and only when it's necessary.

3 replies

ManviSharma
ManviSharmaAccepted solution
Employee
April 22, 2023

Hi,

 

The @ symbol in AEM Query Builder denotes a full-text search. When you use @ before a property name, it tells Query Builder to perform a full-text search on that property.

In your example, using 1_property=jcr:content/cq:lastModified would search for the exact value of jcr:content/cq:lastModified in the 1_property field. This would return 500 results.

On the other hand, using 1_property=@jcr:content/cq:lastModified would perform a full-text search on the jcr:content/cq:lastModified property. This means that it would search for any words or phrases that match the property value, rather than searching for the exact value itself. This could potentially return more results, which is why you're seeing 501 results instead of 500.

It's important to note that full-text search can be more resource-intensive than exact value search, so it's a good idea to use it judiciously and only when it's necessary.

ShaileshBassi
New Participant
April 20, 2023

Hi @jayv25585659 Over here the difference if specific to what you want in the result

1. If you specify property as @jcr:content/cq:lastReplicatedBy, then in that case the relative path is returned. And in this case the current path's (i.e. /content/wknd/language-masters/en/magazine) jcr:content node resource is ignored.

2. If you specificy just the property as cq:lastReplicatedBy, then in that case it will return the exact path. And in this case as the currentPath i.e. is also having the property cq:lastReplicatedBy, so that resource path is also returned.

 

That's the reason you see the difference of 1.

 Hope this helps!

Thanks

 

arunpatidar
New Participant
April 20, 2023

@ is used with orderby only

orderby=@jcr:content/cq:lastModified

 and attribute axis (represent by '@' in abbreviated syntax) are supported.

 

If you use @ with property name, there is absolutely no difference

 

With ‘@‘

 

without '@'

 

 

 

Arun Patidar