A wrapper class that exposes logical methods that are conditionally fired
against either a configured Elasticsearch client or a configured Opensearch
client.
This is necessary because, despite its intention to be API-compatible, the
opensearch client does not support API key-based authentication. This is
also the sanest way to accomplish this while making typescript happy.
In the future, if the differences between implementations become
unmaintainably divergent, we should split out the Opensearch and
Elasticsearch search engine implementations.
A wrapper class that exposes logical methods that are conditionally fired against either a configured Elasticsearch client or a configured Opensearch client.
This is necessary because, despite its intention to be API-compatible, the opensearch client does not support API key-based authentication. This is also the sanest way to accomplish this while making typescript happy.
In the future, if the differences between implementations become unmaintainably divergent, we should split out the Opensearch and Elasticsearch search engine implementations.