


Hi All,
I am facing an issue in query builder debug tool where order by is not working with below query format.
Query 1:
1_group.1_group.path=/content/we-retail
1_group.2_group.path=/content/dam/we-retail/en
1_group.p.or=true
2_group.1_group.type = cq:Page
2_group.2_group.type = dam:Asset
2_group.p.or=true
3_group.2_group.fulltext = businies
3_group.1_group.1_group.fulltext = consumer
3_group.1_group.2_group.fulltext = marketing
3_group.1_group.p.or=true
3_group.p.or=true
orderby = @jcr:content/jcr:lastModified
orderby.sort = desc
group.p.or=true
Query formation:
ROOT=group: [
{orderby=orderby: orderby=@jcr:content/jcr:lastModified, sort=desc}
{1_group=group: or=true[
{1_group=group: [
{path=path: path=/content/we-retail}
]}
{2_group=group: [
{path=path: path=/content/dam/we-retail/en}
]}
]}
{2_group=group: or=true[
{1_group=group: [
{type=type: type=cq:Page}
]}
{2_group=group: [
{type=type: type=dam:Asset}
]}
]}
{3_group=group: or=true[
{1_group=group: or=true[
{1_group=group: [
{fulltext=fulltext: fulltext=consumer}
]}
{2_group=group: [
{fulltext=fulltext: fulltext=marketing}
]}
]}
{2_group=group: [
{fulltext=fulltext: fulltext=businies}
]}
]}
{4_group=group: or=true[
]}
]
Query 2:
1_group.1_group.path=/content/we-retail
1_group.2_group.path=/content/dam/we-retail
1_group.p.or=true
2_group.1_group.type = cq:Page
2_group.2_group.type = dam:Asset
2_group.p.or=true
3_group.2_group.fulltext = business
3_group.1_group.1_group.fulltext = consumer
3_group.1_group.2_group.fulltext = marketing
3_group.1_group.p.or=true
3_group.p.or=true
orderby = @jcr:content/cq:lastModified
orderby.sort = desc
Query formation:
(/jcr:root/content/we-retail//element(*, cq:Page)
[
(jcr:contains(., 'consumer'))
] | /jcr:root/content/dam/we-retail//element(*, cq:Page)[(jcr:contains(., 'consumer'))] | /jcr:root/content/we-retail//element(*, dam:Asset)[(jcr:contains(., 'consumer'))] | /jcr:root/content/dam/we-retail//element(*, dam:Asset)[(jcr:contains(., 'consumer'))] | /jcr:root/content/we-retail//element(*, cq:Page)[(jcr:contains(., 'marketing'))] | /jcr:root/content/dam/we-retail//element(*, cq:Page)[(jcr:contains(., 'marketing'))] | /jcr:root/content/we-retail//element(*, dam:Asset)[(jcr:contains(., 'marketing'))] | /jcr:root/content/dam/we-retail//element(*, dam:Asset)[(jcr:contains(., 'marketing'))] | /jcr:root/content/we-retail//element(*, cq:Page)[(jcr:contains(., 'business'))] | /jcr:root/content/dam/we-retail//element(*, cq:Page)[(jcr:contains(., 'business'))] | /jcr:root/content/we-retail//element(*, dam:Asset)[(jcr:contains(., 'business'))] | /jcr:root/content/dam/we-retail//element(*, dam:Asset)[(jcr:contains(., 'business'))])
Debug logs:
Caused by: java.text.ParseException: (//element(*, cq:Page)[(jcr:contains(., 'marketing'))] | //element(*, cq:Page)[(jcr:contains(@jcr:title, 'consumer'))] | //element(*, cq:Page)[(jcr:contains(@jcr:description, 'business'))] | //element(*, dam:Asset)[(jcr:contains(., 'marketing'))] | //element(*, dam:Asset)[(jcr:contains(@jcr:title, 'consumer'))] | //element(*, dam:Asset)[(jcr:contains(@jcr:description, 'business'))]) order by @jcr:score descending converted to SQL-2 Query: select [jcr:path], [jcr:score], * from [cq:Page] as a where contains(*, 'marketing') /* xpath: //element(*, cq:Page)[(jcr:contains(., 'marketing'))] order by @jcr:score descending */ union select [jcr:path], [jcr:score], * from [cq:Page] as a where contains([jcr:title], 'consumer') /* xpath: //element(*, cq:Page)[(jcr:contains(@jcr:title, 'consumer'))] order by @jcr:score descending */ order by [jcr:score] desc union(*)select [jcr:path], [jcr:score], * from [cq:Page] as a where contains([jcr:description], 'business') /* xpath: //element(*, cq:Page)[(jcr:contains(@jcr:description, 'business'))] order by @jcr:score descending */ order by [jcr:score] desc union select [jcr:path], [jcr:score], * from [dam:Asset] as a where contains(*, 'marketing') /* xpath: //element(*, dam:Asset)[(jcr:contains(., 'marketing'))] order by @jcr:score descending */ order by [jcr:score] desc union select [jcr:path], [jcr:score], * from [dam:Asset] as a where contains([jcr:title], 'consumer') /* xpath: //element(*, dam:Asset)[(jcr:contains(@jcr:title, 'consumer'))] order by @jcr:score descending */ order by [jcr:score] desc union select [jcr:path], [jcr:score], * from [dam:Asset] as a where contains([jcr:description], 'business') /* xpath: //element(*, dam:Asset)[(jcr:contains(@jcr:description, 'business'))] order by @jcr:score descending */ order by [jcr:score] desc; expected: <end>
at org.apache.jackrabbit.oak.query.QueryEngineImpl.parseQuery(QueryEngineImpl.java:186)
at org.apache.jackrabbit.oak.query.QueryEngineImpl.executeQuery(QueryEngineImpl.java:253)
at org.apache.jackrabbit.oak.jcr.query.QueryManagerImpl.executeQuery(QueryManagerImpl.java:136)
... 126 common frames omitted
Caused by: java.text.ParseException: Query: select [jcr:path], [jcr:score], * from [cq:Page] as a where contains(*, 'marketing') /* xpath: //element(*, cq:Page)[(jcr:contains(., 'marketing'))] order by @jcr:score descending */ union select [jcr:path], [jcr:score], * from [cq:Page] as a where contains([jcr:title], 'consumer') /* xpath: //element(*, cq:Page)[(jcr:contains(@jcr:title, 'consumer'))] order by @jcr:score descending */ order by [jcr:score] desc union(*)select [jcr:path], [jcr:score], * from [cq:Page] as a where contains([jcr:description], 'business') /* xpath: //element(*, cq:Page)[(jcr:contains(@jcr:description, 'business'))] order by @jcr:score descending */ order by [jcr:score] desc union select [jcr:path], [jcr:score], * from [dam:Asset] as a where contains(*, 'marketing') /* xpath: //element(*, dam:Asset)[(jcr:contains(., 'marketing'))] order by @jcr:score descending */ order by [jcr:score] desc union select [jcr:path], [jcr:score], * from [dam:Asset] as a where contains([jcr:title], 'consumer') /* xpath: //element(*, dam:Asset)[(jcr:contains(@jcr:title, 'consumer'))] order by @jcr:score descending */ order by [jcr:score] desc union select [jcr:path], [jcr:score], * from [dam:Asset] as a where contains([jcr:description], 'business') /* xpath: //element(*, dam:Asset)[(jcr:contains(@jcr:description, 'business'))] order by @jcr:score descending */ order by [jcr:score] desc; expected: <end>
Views
Replies
Sign in to like this content
Total Likes
Can you give 1-2 line description of what kind of data you are planning to extract from these 2 queries,
It will help community to understand the problem in easier way.
Views
Replies
Sign in to like this content
Total Likes
I am trying to fetch data from dam and page content where my query will have category, sub category and keyword search and a able to get data but when i try to sort the data based on last modify, my query is failing and error showing up in logs pasted in question.
Views
Replies
Sign in to like this content
Total Likes
Hi,
Just a thought.
Since you are getting the results back without ordering, may be try to narrow down the query to just pages or assets with limited set of results [say 2 or 3] and then try see what happens. This way we can rule out other things that might be causing some issues
Views
Replies
Sign in to like this content
Total Likes
Yes, exactly same i tried earlier, with 1 set and more.below are few examples, it is only working in 1 group and including multiple group with orderby not working.
1.type=cq:Page
orderby=@jcr:content/cq:lastModified
2.
type=cq:Page
orderby=@jcr:content/cq:lastModified
orderby.sort=desc
3.
fulltext=Managemen
group.p.or=true
group.1_path=/content/geometrixx/en/company/management
group.2_path=/content/geometrixx/en/company/bod
4 .
type=cq:Page
1_property=jcr:content/cq:template
1_property.value=/apps/geometrixx/templates/homepage
2_property=jcr:content/jcr:title
2_property.value=English
Views
Replies
Sign in to like this content
Total Likes