In order for queries to perform well, Oak supports indexing concept which will index content stored in the repository based on the index definition/type/indexing mode.
1. Indexing works by comparison of the node state (Difference between base state and modified state ) where NodeState(org.apache.jackrabbit.oak.spi.state.NodeState) respresents a specific immutable state of the node.
2. Below mentioned types of indexing modes are defined based on how this comparison is made + when the index content gets updated.
1. Sychronous Indexing
This mode updates index content as part of the commit to the actual content. In other words, content update and the respective update in index will happen together (as with the name synchronous)
Supported Index Type: Property Index
2. Asynchronous Indexing
Index update is done via a scheduled jobs(AsyncIndexJobUpdate) defined at specific interval. (5 seconds OOB)
As indexing in this mode happens asynchronously irrespective of the updates to the content, there is a chance of slight lag behind the latest repository state and will be eventually consistent.
Supported Index Type: Lucene Index and Solr Index