Interface ElasticsearchProtocolDialect

All Known Implementing Classes:
AmazonOpenSearchServerlessProtocolDialect, Elasticsearch70ProtocolDialect, Elasticsearch80ProtocolDialect, Elasticsearch81ProtocolDialect

public interface ElasticsearchProtocolDialect
An entry point to all dialect-sensitive operations that only affect the protocol when talking to the Elasticsearch cluster, i.e. the paths and parameters to use in requests.

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

This "protocol dialect" should not affect the index mapping or the analysis definitions: it only affects how we transmit such information to the Elasticsearch cluster. It allows to address slight variations in the way Elasticsearch expects clients to send requests, such as the "include_type_name" parameter introduced in 6.7 that triggers warnings if it's not present in 6.7, but triggers failure if it's present before 6.7.

Similarly to ElasticsearchModelDialect, 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.