AEM & Oak Optimization••By Khalil Ganiga

Oak Index Studio: A Modern Tool for Generating AEM Oak Lucene Indexes

OakUtils used to be the go-to tool for generating Oak Lucene indexes from AEM queries. It's no longer available, so Oak Index Studio was built to replace and surpass it — attaching deterministic, documentation-backed reasoning to every single attribute instead of opaque output.

If you have spent real time in Adobe Experience Manager (AEM) performance tuning, you have likely encountered this scenario: you write an intuitive SQL2 or Query Builder query, test it locally on a light repository, and watch it fail in production with a QueryTraversalException because no index supports the property you filter on.

Understanding Apache Jackrabbit Oak's Lucene indexing rules is notoriously nuanced. Questions like whether ordered=true needs propertyIndex=true, how evaluatePathRestrictions works, or how Cloud Manager treats index definition updates require consulting multiple dense docs. Oak Index Studio automates that entire process.

What Oak Index Studio Actually Does

Oak Index Studio takes an AEM query in SQL2, XPath, or Query Builder syntax and produces a production-shaped Oak Lucene index definition. Every generated attribute includes transparent, line-by-line reasoning:

Query-Quality Analysis

Flags conditions that no index can fix — such as leading-wildcard LIKE '%term' or Cartesian joins — and suggests actionable query rewrites.

Index Health Score

Validates the index against 14 distinct rules (path scoping, compatVersion, async mode, null checks, node scope) and explains deductions.

Explain-Plan Cost Reader

Paste Oak's explain output to understand candidate index costs, why Oak picked a specific index, and why alternatives were rejected.

Existing Index Diffing

Paste your existing .content.xml to compare it against what your query actually requires, identifying missing, extra, or misconfigured properties.

100% Client-Side Privacy Guarantee

Oak Index Studio has no backend server, no database, no analytics tracking, and no cookies. All parsing, AST analysis, scoring, and index generation occur entirely inside your browser tab. Your repository paths, property names, and query structures never leave your workstation.

Why Deterministic Rules Beat Generic AI Assistants

Developers frequently prompt general-purpose LLMs (ChatGPT, Claude, Copilot) to write Oak index definitions. While plausible at first glance, generic models frequently fail subtle Oak constraints:

  • ✗Negated LIKE clauses: Generic LLMs often assign propertyIndex=true to a negated pattern (NOT(prop LIKE '...')), unaware that Oak cannot bound an exclusion scan via an index.
  • ✗Superfluous path flags: Suggesting evaluatePathRestrictions=true on queries without path bounds bloats index doc-values unnecessarily.
  • ✗Sorting vs Filtering: Mistakenly requiring propertyIndex=true whenever ordered=true is set, even for sort-only properties where doc-values alone suffice.

Oak Index Studio executes a deterministic, unit-tested engine mapped directly to the official Apache Jackrabbit Oak specifications. The same query yields the same mathematically verified index every single run.

AEM as a Cloud Service (AEMaaCS) vs AEM 6.5

Indexing mechanisms differ between on-premise AEM 6.5 and Cloud Service. Oak Index Studio handles these differences automatically:

AspectAEM as a Cloud ServiceAEM 6.5 / On-Premise
Index Naming<name>-custom-<version> (e.g. cqPageLucene-custom-1)Custom unique name under /oak:index
Reindex FlagNever set reindex=true; Cloud Manager manages buildsSet reindex=true on deployment if restructuring
Async Property["async", "nrt"]"async"
Package Targetui.apps: /oak:indexui.apps: /oak:index

Transparent Limitations & Best Practices

  • Static Analysis: Oak Index Studio examines query syntax. It cannot inspect live repository node counts or index statistics. Always run Explain Query in production or staging.
  • Type Inference: Property types are inferred from literal formats and naming conventions. Review type= before merging to source control.
  • OOTB Index Extensions: Whenever querying cq:Page or dam:Asset, extend existing OOTB indexes (e.g. cqPageLucene-custom-N) instead of introducing redundant indexes that double write-amplification.

Ready to optimize your AEM queries?

Paste any SQL2, XPath, or Query Builder query into Oak Index Studio.

Open Studio Tool