How to optimize Oak Lucene indexes to reduce indexing time

Optimize the Oak Lucene indexes using includedPaths and excludedPaths properties.

Description description

Environment

  • Adobe Experience Manager 6.0 + Oak 1.0.16 or later
  • Adobe Experience Manager 6.1 and 6.2

Issue/Symptoms

Optimize the AEM Oak Lucene indexes to reduce reindexing time.

Resolution resolution

You can optimize the Oak Lucene indexes by fine-tuning the oak: QueryIndexDefinition with properties such as includedPaths, excludedPaths, name and indexPath.

  • includedPaths and excludedPaths properties restrict what paths the index traverses when reindexing and which paths it listens to for index updates.
  • name and indexPath properties make index logs easier to understand as they would tag the log messages with the path or name of the index. For example:
30.01.2017 14:07:12.934 *DEBUG* [ pool-8-thread-2] org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditor [ damassetlucene(/oak:index/damAssetLucene)] => Indexed 9000 nodes...

Steps to optimize the indexes:

  1. Go to http://aem-host:port/crx/de/index.jsp and log in as admin.
  2. Browse to /oak:index.
  3. Add the properties highlighted below [ 1] to the corresponding indexes. The includedPaths and excludedPaths properties should be multi-value String (String[ ] ).
  4. Click Save All in CRXDe.

[ 1] /oak:index property modifications

"authorizables": {

    "includedPaths": [ "/home"] ,

    "reindexCount": 1,

    "name": "authorizables",

    "compatVersion": 2,

    "reindex": false,

    "type": "lucene",

    "jcr:primaryType": "oak:QueryIndexDefinition",

    "async": "async",

    "indexPath": "/oak:index/authorizables"

    },



"cqPageLucene": {

    "includedPaths": [

      "/content",

      "/etc"

    ] ,

    "reindexCount": 1,

    "name": "cq:Page",

    "compatVersion": 2,

    "reindex": false,

    "type": "lucene",

    "jcr:primaryType": "oak:QueryIndexDefinition",

    "async": "async",

    "indexPath": "/oak:index/cqPageLucene"

    },



"cqTagLucene": {

    "reindexCount": 1,

    "name": "cqTag",

    "compatVersion": 2,

    "reindex": false,

    "type": "lucene",

    "jcr:primaryType": "oak:QueryIndexDefinition",

    "excludedPaths": [

      "/var",

      "/tmp",

      "/etc/replication",

      "/etc/workflow/instances",

      "/jcr:system"

    ] ,

    "async": "async",

    "indexPath": "/oak:index/cqTagLucene"

    },



"damAssetLucene": {

    "includedPaths": [ "/content/dam"] ,

    "evaluatePathRestrictions": true,

    "reindexCount": 1,

    "name": "damassetlucene",

    "compatVersion": 2,

    "reindex": false,

    "type": "lucene",

    "jcr:primaryType": "oak:QueryIndexDefinition",

    "async": "async",

    "indexPath": "/oak:index/damAssetLucene"

    },



"lucene": {

    "reindexCount": 1,

    "name": "lucene",

    "reindex": false,

    "includePropertyTypes": [ "String"] ,

    "type": "lucene",

    "jcr:primaryType": "oak:QueryIndexDefinition",

    "excludedPaths": [

      "/var",

      "/tmp",

      "/etc/replication",

      "/etc/workflow/instances",

      "/jcr:system"

    ] ,

    "async": "async",

    "indexPath": "/oak:index/lucene"

    },



"ntBaseLucene": {

    "reindexCount": 1,

    "name": "tags",

    "compatVersion": 2,

    "reindex": false,

    "type": "lucene",

    "jcr:primaryType": "oak:QueryIndexDefinition",

    "excludedPaths": [

      "/var",

      "/tmp",

      "/etc/replication",

      "/etc/workflow/instances",

      "/jcr:system"

    ] ,

    "async": "async",

    "indexPath": "/oak:index/ntBaseLucene"

    },





"workflowDataLucene": {

    "reindexCount": 1,

    "name": "workflow",

    "compatVersion": 2,

    "reindex": false,

    "type": "lucene",

    "jcr:primaryType": "oak:QueryIndexDefinition",

    "excludedPaths": [

      "/var",

      "/tmp",

      "/etc/replication",

      "/jcr:system"

    ] ,

    "async": "async",

    "indexPath": "/oak:index/workflowDataLucene"

    }
recommendation-more-help
experience-cloud-kcs-help-kbarticles