Description
In Oak one can define an index anywhere in the repository under a special node name oak:index. For e.g. if you want a property index for sling:resourceType at root level then you can create the index at /oak:index/resourceType and this index would store the index content at /oak:index/resourceType/:index.
- Writing - At time of commit the IndexEditor would need to decide where the indexed content for a given path should be stored. To start with it can make use of PathToStoreMapper to decide which node to use the indexed content. For e.g. for /libs the indexed content is stored under :index-pr and for /content :index-sr is used. This is simpler for PropertyIndex where IndexStoreStrategy can be passed the right node
- Reading - At time of reading the QueryIndex implementation would need to provide a union cursor which can perform lookup from all such store directories for a given index.
Open Items
- Supporting unique indexes
- Introducing new oak:index - Node under oak:index node are special. Depending on parent path it might be possible that they would have to be created in both repositories. For e.g. /oak:index would have to be present in both PR and SR. While /content/foo/oak:index can live only in SR.
Attachments
Attachments
Issue Links
- is related to
-
OAK-4645 Enable read-only constraint for unique property index updates
- Open
-
OAK-4647 Multiplexing support in PropertyIndexStats MBean
- Open
-
OAK-4666 Allow to convert normal index data nodes into private ones during the migration
- Resolved
- relates to
-
OAK-3757 Reduce copying of state from parent in PropertyIndexEditor
- Open
-
OAK-4815 ReferenceIndex slowdown due to OAK-3403
- Closed
- supercedes
-
OAK-3758 Multiplexing store support in Reference index
- Closed