Go-elasticsearch versus Olivere golang client

I am planning to migrate from golang Olivere to the official go-elasticsearch API for a data ingestion application running in K8s container. This I am doing mainly because I read Olivere is not committing to support Elasticseach 8 in the future. Is that really true?
My application need APIs for creating and deleting indexes, finding indexes in an alias, add indices to alias, document indexing, efficient bulk indexing. So far in go-elasticsearch package, I found APIs only for index creation and sequential indexing of documents. For other missing APIs, do I need to call the Elasticsearch REST API directly from my golang code? If you have the other APIs available, I would like to know the path to that resource.


first, I suppose the answer that you are referring to is this GitHub issue where Oliver answered. I think it is perfectly fine to state in advance that a single developer (see https://github.com/olivere/elastic/graphs/contributors) who has been taking care of the client for seven years, cannot give you any guarantee that this piece of software will live on. You could ask him to pay for further development, if you are dependent on it or help maintaining it.

That said, the elasticsearch go client seems to support creating and deleting indices, the alias API as well as a bulk indexer. Did you look at an older version by chance?

See https://github.com/elastic/go-elasticsearch/tree/7.10/esapi

Hope this helps!


Thanks much Alexander. After some more research on the low level esapi and the more expressive functional way of doing it, I think I will be able to accomplish what I need to with a mix of these. I wish Elasticsearch created a higher level abstract layer for all these plumbing work - just like what Olivere had. I am doing that now for our company, which is Centene Corp.
Thanks again for your quick reply.