Currently, if the definition of an index is changed without reindexing, it will get in an "inconsistent" state.
Of course, the reindexing is usually necessary, but it would be useful to know with which definition the index was built. This could increase the visibility of the indexing state and help debugging issues related to it.
Some questions this improvement should respond to:
- What is the definition of the index when the (re)indexing was triggered?
- Are there any changes in the definition since the trigger? Which?
I can imagine a solution built by "versioning" the definition nodes (oak:QueryIndexDefinition). When the reindex is triggered, a new version of the node is created and the indexer stores a reference to it.
This would also allow the indexer to keep using the same definition until a new reindex, even if changes are made meanwhile (i.e. use a fixed version instead of the latest definition).