- the high level Elasticsearch rest client can be build from a static class in the Optimize commons package
- the rest client is initialized in the same manner as the transport client
- the transport client does not initialize the schema any longer
- the schema is initialized by the rest client
- the transport client is exposed directly instead of using a wrapper class
- the Elasticsearch schema is initialized only once on initial startup, instead of calling it on each request
- the Elasticsearch schema version is retrieved using the rest client
- The transport client will be deprecated soon and also does not work on AWS. Therefore, we need to replace it by the high level rest client.
- In the past we supported the scenario that Optimize could be started first and then Elasticsearch and Optimize would then automatically initialize the schema. However, this scenario is not needed and makes everything very complicated. It is now required that Elasticsearch must be up running before Optimize is started. This way we only need to initialize the Schema once on the start.