Expand my Community achievements bar.

Fix the Property Predicate to produce the same query conistently regardless of listOrder

Avatar

Level 2

10/14/21

Request for Feature Enhancement (RFE) Summary: When using property predicates in the search rail, it shouldn't matter what listOrder they are assigned and that listOrder shouldn't change how the query. Currently, some listOrders make the query search on every property and other listOrders correctly searches for the term on the property it points to. Obviously the location of the search facet in the search rail should not change the query. For example, a listOrder of 35 gives this query: xpath: /jcr:root/content/dam//element(*, dam:Asset)[(jcr:contains(jcr:content/metadata/@nord.row.item.brand, 'nike'))] and searches for "nike" in the jcr:content/metadata/nord.row.item.brand metadata field. However, change the listOrder of the search facet to 36 and the query changes to: xpath: /jcr:root/content/dam//element(*, dam:Asset)[(jcr:contains(., 'nike'))]  and search on ALL metadata fields for "nike." This is obviously a bug, but the support team told me to open an enhancement ticket - you can find the ticket under: CQ-4332860. Additionally, if you check both the case insensitive and partial search options, the search doesn't work at all for property predicate fields. I believe this is already an acknowledge bug though. 
Use-case: Clients would like to search for metadata using the property predicate and only have results for that metadata property
Current/Experienced Behavior: Currently, some listOrders make the query search on every property and other listOrders correctly searches for the term on the property it points to. Obviously the location of the search facet in the search rail should not change the query. For example, a listOrder of 35 gives this query: xpath: /jcr:root/content/dam//element(*, dam:Asset)[(jcr:contains(jcr:content/metadata/@nord.row.item.brand, 'nike'))] and searches for "nike" in the jcr:content/metadata/nord.row.item.brand metadata field. However, change the listOrder of the search facet to 36 and the query changes to: xpath: /jcr:root/content/dam//element(*, dam:Asset)[(jcr:contains(., 'nike'))]  and search on ALL metadata fields for "nike." This is obviously a bug, but the support team told me to open an enhancement ticket 
Improved/Expected Behavior: The property predicate only returns results for the metadata field it points to.
Environment Details (AEM version/service pack, any other specifics if applicable): It's been so long that we have tired to get this bug fixed I'm not even sure when we first noticed it. I believe it was around 6.5 when we switched from using the fulltext predicate to the property predicate more to get 
Customer-name/Organization name: Freedom Marketing. We have seen this in all of our clients on 6.5.
Screenshot (if applicable): Please see ticket CQ-4332860 for screenshots and query examples
Code package (if applicable):  
1 Comment

Avatar

Employee Advisor

10/14/21

Hello @cc96470700 

Thanks for the idea

This request has been raised to the product team via the Jira CQ-4333975. The product team will triage this request to verify feasibility based on the prioritization model. This post will be updated according to the Jira request status.

Status changed to: Investigating