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:
Flags conditions that no index can fix — such as leading-wildcard LIKE '%term' or Cartesian joins — and suggests actionable query rewrites.
Validates the index against 14 distinct rules (path scoping, compatVersion, async mode, null checks, node scope) and explains deductions.
Paste Oak's explain output to understand candidate index costs, why Oak picked a specific index, and why alternatives were rejected.
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=trueto a negated pattern (NOT(prop LIKE '...')), unaware that Oak cannot bound an exclusion scan via an index. - ✗Superfluous path flags: Suggesting
evaluatePathRestrictions=trueon queries without path bounds bloats index doc-values unnecessarily. - ✗Sorting vs Filtering: Mistakenly requiring
propertyIndex=truewheneverordered=trueis 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:
| Aspect | AEM as a Cloud Service | AEM 6.5 / On-Premise |
|---|---|---|
| Index Naming | <name>-custom-<version> (e.g. cqPageLucene-custom-1) | Custom unique name under /oak:index |
| Reindex Flag | Never set reindex=true; Cloud Manager manages builds | Set reindex=true on deployment if restructuring |
| Async Property | ["async", "nrt"] | "async" |
| Package Target | ui.apps: /oak:index | ui.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 Queryin 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:Pageordam: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.