The Elasticsearch Rant(xeiaso.net)
xeiaso.net
The Elasticsearch Rant
https://xeiaso.net/blog/elasticsearch
11 comments
I don't really like this style of writing. It's easy enough to skip over though, so I wouldn't say I'm "very upset" about it. I don't find it humorous like you do. It seems like a way for the author to pat themselves on the back. Like having imaginary arguments with yourself or a caricature of your own design.
It's actually a bit like what you did in your second paragraph where you preempt those who disagree with you and portray them being "very upset" and "taking themselves too seriously". This is totally unnecessary.
I'm glad you enjoy their writing, genuinely. But you don't have to speak poorly of those who don't. Doing that makes you come across as insecure about your own opinions; that you only appreciate their quirky style because otherwise you might be seen as "very upset" or taking yourself too seriously. You can do better.
It's actually a bit like what you did in your second paragraph where you preempt those who disagree with you and portray them being "very upset" and "taking themselves too seriously". This is totally unnecessary.
I'm glad you enjoy their writing, genuinely. But you don't have to speak poorly of those who don't. Doing that makes you come across as insecure about your own opinions; that you only appreciate their quirky style because otherwise you might be seen as "very upset" or taking yourself too seriously. You can do better.
For the query string, you don’t have to implement your own DSL. Elasticsearch supports it out of the box. You could POST a JSON object to “/_search” but you can also do a GET with the “q” query parameter.
Documentation: https://www.elastic.co/guide/en/elasticsearch/reference/curr...
In the Golang library you can use the “Search.WithQuery” option. This means you don’t have to construct a JSON request body.
Here’s an example: https://github.com/taythebot/archer/blob/main/pkg/elasticsea...
In the Golang library you can use the “Search.WithQuery” option. This means you don’t have to construct a JSON request body.
Here’s an example: https://github.com/taythebot/archer/blob/main/pkg/elasticsea...
Im working with a rather unusual setup, namely that we use Elasticsearch as our primary data store. This article struck something with me — the client libraries provided by Elasticsearch are just so, so bad. Fragmented, badly to not documented, different in every language… it’s just a pain in the ass. Errors aren’t documented at all - for one of our client libraries, I actually had to poke the server until it spat out errors, so I could add code to parse the JSON returned. And I still don’t know if I got everything, or if that message property will be there with the next error.
Sometimes I think they expect you to read and parse the response JSON manually. Oh, and did I mention the horrible docs yet? For some methods, there just isn’t anything. Or stuff like „getFoo - returns the foo“.
That shit is infuriating, I tell you. Going to jump ship the microsecond something better appears.
Sometimes I think they expect you to read and parse the response JSON manually. Oh, and did I mention the horrible docs yet? For some methods, there just isn’t anything. Or stuff like „getFoo - returns the foo“.
That shit is infuriating, I tell you. Going to jump ship the microsecond something better appears.
Side note: the site detects my adblocker and asks me to turn it off because the ads apparently help pay for the site.
According to the author's own salary transparency data https://xeiaso.net/salary-transparency they have been warning six figure salaries for years, yet they can't host their servers without running ads? It's weird...
According to the author's own salary transparency data https://xeiaso.net/salary-transparency they have been warning six figure salaries for years, yet they can't host their servers without running ads? It's weird...
Having used ElasticSearch (and OpenSearch) in Golang with a pretty dynamic index, this article rings true in many aspects. The ElasticSearch Golang library is a glorified wrapper around an HTTP Client that adds only frustration to the experience. The documentation is lacking in a lot of aspects, but really I think to integrate with ElasticSearch “well”, you need to use a language that can match the dynamism that it offers, which usually means Ruby or Python. But then you can start to be bottle necked by the language you’re writing in. Anyways, I would say that ElasticSearch has its place, but you really have to understand how to use it and use a language that can support its dynamic nature.
> The ElasticSearch Golang library is a glorified wrapper around an HTTP Client that adds only frustration to the experience.
That's been my experience with SDK and adapter libraries regardless of the language.
That's been my experience with SDK and adapter libraries regardless of the language.
If I would summarize the majority of this article it is:
The Go libraries are not working as I was expecting and I can't figure out how to treat JSON data as data because of the type system.
Also, "entire JavaScript ecosystem is garbage ".
> we regularly ran into issues with basic product functionality that made me start to question how Elastic is successful at all.
I would have liked to hear more about those, not about the inability of the author to deal with JSON.
The Go libraries are not working as I was expecting and I can't figure out how to treat JSON data as data because of the type system.
Also, "entire JavaScript ecosystem is garbage ".
> we regularly ran into issues with basic product functionality that made me start to question how Elastic is successful at all.
I would have liked to hear more about those, not about the inability of the author to deal with JSON.
The issues were "inserting data into ElasticSearch" and "searching data out of ElasticSearch" using their official SDKs and integrations. If this isn't core product functionality, what is?
But it's complaining about one language's SDK, not the core functionality, which is the data insertion and search API.
Elastics core functionality is good. This is just complaining about how it's not well abstracted.
I can't even count how many clients I've used over the years that are annoying to use. Hardly seems very notable.
The funny thing is I've always found elastics API really easy to use.
Elastics core functionality is good. This is just complaining about how it's not well abstracted.
I can't even count how many clients I've used over the years that are annoying to use. Hardly seems very notable.
The funny thing is I've always found elastics API really easy to use.
The majority of complaints here really only apply to the golang ElasticSearch library and not ElasticSearch itself. Golang pretty much sucks when it comes to dealing with unstructured JSON.
I know a vocal minority of the HN will be very upset about seeing little cartoon drawings with their blog post but I think they may be taking themselves too seriously. If little cartoon characters interjecting are that distracting to you then maybe it’s an issue with you and not the blog post.