Expand my Community achievements bar.

SOLVED

Handling and Deployment of Custom OAK index | Readiness for AEM as Cloud Service

Avatar

Level 5

Hi Team,

We are currently using custom oak indexes and using Ensure Oak Index to have mapping and deployment from /apps/site/oak-index mapped to oak:index.

 

While checking readiness for AEM as cloud service, its mentioned that Ensure OAK index is incompatible with AEM as cloud service. https://adobe-consulting-services.github.io/acs-aem-commons/features/ensure-oak-index/index.html

 

What is the recommended way to manage and deploy custom oak:indexes in this scenario. let us know your thoughts.

1 Accepted Solution

Avatar

Correct answer by
Level 10

Hi @NehaCMS,

Custom oak index in AEM as a cloud service has to be with specific naming convention and it is to be part of ui.apps module.

Complete details of index management is available in https://experienceleague.adobe.com/docs/experience-manager-cloud-service/operations/indexing.html?la...

 

View solution in original post

12 Replies

Avatar

Correct answer by
Level 10

Hi @NehaCMS,

Custom oak index in AEM as a cloud service has to be with specific naming convention and it is to be part of ui.apps module.

Complete details of index management is available in https://experienceleague.adobe.com/docs/experience-manager-cloud-service/operations/indexing.html?la...

 

Avatar

Level 3

Hi Vijayalakshmi,

We are using AEM as cloud. While we make the custom index as part of our code and try to deploy, the deployment fails in the code scanning, saying 'The index /oak:index/damAssetLucene-7-custom-1 is a customization of the out of the box index /oak:index/damAssetLucene which requires a config.xml file under the child node named tika'. But we already have the tika folder as part of our source code and the config.xml inside it. Do you know how to resolve this? Any suggestion would be greatly appreciated.

Thanks,
Rahul

Avatar

Level 10

@RahulMohan 

Can you confirm if tika node is saved/available as nt:unstructured node (as opposed to a folder)

You can cross check with OOTB damAssetLucene-7 as available in cloud service instance. (and use the same node type)

Avatar

Level 3

Hi Vijayalakshmi,

Thanks for responding. Much appreciated.
Yes. It's configured as type - "nt:unstructured" in the .content.xml. Please see the below content from .content.xml used for the custom index node creation under oak:index node.


<damAssetLucene-7-custom-1
jcr:primaryType="oak:QueryIndexDefinition"
async="[async,nrt]"
compatVersion="{Long}2"
evaluatePathRestrictions="{Boolean}true"
includedPaths="[/content/dam]"
merges="[/oak:index/damAssetLucene-7]"
reindex="{Boolean}false"
reindexCount="{Long}1"
seed="{Long}6491817286266733390"
tags="[visualSimilaritySearch]"
type="lucene">
<aggregates jcr:primaryType="nt:unstructured">
<dam:Asset jcr:primaryType="nt:unstructured">
<include0
jcr:primaryType="nt:unstructured"
path="jcr:content"/>
<include1
jcr:primaryType="nt:unstructured"
path="jcr:content/metadata"/>
....................................
........................
..............
</dam:Asset>
</aggregates>
<facets
jcr:primaryType="nt:unstructured"
secure="statistical"
topChildren="100"/>
<indexRules jcr:primaryType="nt:unstructured">
<dam:Asset jcr:primaryType="nt:unstructured">
<properties jcr:primaryType="nt:unstructured">
<cqTags
jcr:primaryType="nt:unstructured"
name="jcr:content/metadata/cq:tags"
nodeScopeIndex="{Boolean}true"
propertyIndex="{Boolean}true"
useInSpellcheck="{Boolean}true"
useInSuggest="{Boolean}true"/>
<dcFormat
jcr:primaryType="nt:unstructured"
analyzed="{Boolean}true"
facets="{Boolean}true"
name="jcr:content/metadata/dc:format"
propertyIndex="{Boolean}true"/>
...................................
....................
..............
</properties>
</dam:Asset>
</indexRules>
<tika jcr:primaryType="nt:unstructured">
<config.xml/>
</tika>
</damAssetLucene-7-custom-1>

Avatar

Level 10

Can you check on the below and let know your inputs. I don't have access to cloud service to reproduce this myself. 

  • Amend on top of the index definition from Cloud Service instance
    • package the OOTB definition from Cloud service instance
    • Include the desired customization -> build/deploy in local SDK instance (Check how tika is getting persisted in local SDK)
    • Observe build logs during ui.apps module build.
  • ui.apps has the respective content under jcr_root folder (_oak_index till config.xml)
  • Contents of config.xml is the latest (tika/config.xml)

Avatar

Level 3

Hi Vijayalakshmi,

 

Performed the same steps as you listed and cross verified.

  • Amend on top of the index definition from Cloud Service instance
    • package the OOTB definition from Cloud service instance --> DONE
    • Include the desired customization -> build/deploy in local SDK instance (Check how tika is getting persisted in local SDK) --> Yes, the new index node is getting created under "oak:index" node in my local CRX DE.
    • Observe build logs during ui.apps module build. --> No specific errors
  • ui.apps has the respective content under jcr_root folder (_oak_index till config.xml) --> Available as part of the source code.
  • Contents of config.xml is the latest (tika/config.xml) --> Yes, it's the same as that of the latest OOB index definition damAssetLucene-7.

Thanks,
Rahul

Avatar

Level 10

@RahulMohan 

Thanks. You can raise Support ticket in that case. (For the failure in CM deploy pipeline though tika node is available as nt:unstructured in local SDK + customization done on top of latest from Cloud service instance)

 

Avatar

Level 3

Thank you Vijayalakshmi. Yes raised a ticket month ago. Still waiting for a final solution. Thanks for your analysis.

Avatar

Level 2

Was there a solution to the ticket you raised? I am experiencing the same issue and the documentation provided in the accepted solution isn't helpful.

 

Thanks!

Avatar

Level 2

Is there a solution for this ? I am also having the same issue. 

Avatar

Level 2

Yes, we were able to solve this issue by updating the tika section to this: 

<tika jcr:primaryType="nt:unstructured">
<config.xml jcr:primaryType="nt:file" >
<jcr:content jcr:primaryType="nt:unstructured" />
</config.xml>
</tika>