3 ms·
The Elasticsearch Rant
- beders 3y agoIf 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.
- xena 3y agoThe 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?
- frugen 3y agoBut 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.
- studmuffin650 3y agoHaving 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.
- ravenstine 3y ago> 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.
- haburka 3y agoI really like this style of writing where there are interjections from little characters. It breaks up the technical parts really well and adds a human element to blogs that’s often missing. Its also humorous. 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.
- voidnap 3y agoI 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.
- 9dev 3y agoIm 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.
- aorth 3y agoSide 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 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...
- maxk42 3y agoThe 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.
- byteshock 3y agoFor 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/current/query-dsl-query-string-query.html 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/elasticsearch/search.go#L91 https://github.com/taythebot/archer/blob/main/pkg/elasticsea...