Does AEM Query builder API allow searching the Content Fragment Core component's content included within a Page? | Community
Skip to main content
Level 2
September 23, 2019

Does AEM Query builder API allow searching the Content Fragment Core component's content included within a Page?

  • September 23, 2019
  • 1 reply
  • 15784 views

Hi All,

Please advise if AEM Query builder API supports searching of Content Fragment's (Adobe's Core component) content included within a Page.

I have added a Content Fragment core component on an empty content page (newly created) and authored all the required values for the component including fragmentPath. The component renders as expected and displays the Content Fragment data. However, when I tried searching for the data within content fragment using the following sample queries through Query Builder Debugger, it did not return any results. I am not sure if any new predicates are needed to enable the search functionality for content fragments.

Query Builder query 1:

type=cq:Page

path=<search path>(e.g., /content/we-retail/us/en)

fulltext=<searchterm> (e.g., winter)

Query Builder query 2:

type=cq:Page

path=<search path>(e.g., /content/we-retail/us/en)

fulltext=<searchterm> (e.g., winter)

contentfragment

AEM Version: 6.3.3.0

AEM Core Components Version: 2.5.0

Any advise or guidance would be greatly appreciated. Thank you in advance.

kautuk sahni  smacdonald2008

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.

1 reply

Adobe Employee
September 23, 2019

You can try a query similar to:

type=nt:unstructure

path=/content/we-retail/us

1_group.1_property=sling:resourceType

1_group.1_property.value=weretail/components/content/contentfragment

fulltext=winter

Level 2
September 23, 2019

berliant​ Thanks for your prompt reply!

However, the provided query does not seem to work (no search results) for the specified scenario (Trying to search content fragment component data included within page).

type=nt:unstructured

path=/content/we-retail/us/en

1_group.1_property=sling:resourceType

1_group.1_property.value=weretail/components/content/contentfragment

fulltext=winter

Please note that the actual content fragment data is not being saved within page node structure as it is only being referenced through the "fragmentPath" property. Also, the core content fragment component has already been proxied under we-retail directory/project - "/apps/weretail/components/content/contentfragment". Let me know if you have any questions.

Level 2
February 15, 2021

I used your package for the test.

1. I modified the Test Page by editing the CF component. My changes implied adding two components:

2. It means that now the node structure includes two additional properties: elementNames and text:

3. Now we can use full-text search capabilities and jcr:contains function:

path=/content/we-retail/us

type= cq:Page

group.p.and

group.1_fulltext=Jason

group.2_fulltext=contentfragment

Note, that the query is using oak:index/cqPageLucene

For a full-text search, you don't need to edit indexes.

Make sure, that you have the same configuration and the query execution plan is also similar to what I see on my test machine. If this is not a case, it might be some bigger issue related to an oak/indexing on your AEM.

At that point, I suggest opening a support case and have a screen session with a support engineer.


@leoberliant @nagarjunav  Can you please share the fix in case you have found the root cause?

I'm facing Facing the same error & following is my analysis:
AEM version =  6.5.5

Core component version =  2.12.0

I have noticed that starting Core component 2.4.0,  when Content Fragment component was moved out of the extensions folder ( i.e. from /apps/core/wcm/extension/components/contentfragment/v1/contentfragment  TO /apps/core/wcm/components/contentfragment/v1/contentfragment), adding/editing a CF component on the page, no longer adds a "text" property to the content fragment content node & hence fulltext search does not work.

I tried the same scenario with Core Component version 2.3.2 & upon adding/editing a CF component to the page, it adds/updates the text property with values from the Content Fragment element data. Full text search works fine in this case.

Thanks,

Pravin