Interface ElasticsearchModelDialect

All Known Implementing Classes:
Elasticsearch7ModelDialect, Elasticsearch812ModelDialect, Elasticsearch814ModelDialect, Elasticsearch8ModelDialect, OpenSearch1ModelDialect, OpenSearch214ModelDialect, OpenSearch29ModelDialect, OpenSearch2ModelDialect

public interface ElasticsearchModelDialect
An entry point to all operations that may be implemented differently depending on the Elasticsearch version running on the Elasticsearch cluster.

Add more methods here as necessary to implement dialect-specific behavior.

This interface should only expose methods to be called during bootstrap, and should not be depended upon in every part of the code. Thus, most methods defined here should be about creating an instance of an interface defined in another package, that will be passed to the part of the code that needs it.

For example, if a particular predicate has a different syntax in its JSON form depending on the Elasticsearch version, we could have a createPredicateFormattingStrategy() methods that returns a strategy to be plugged into the predicate builder factory.