I've been hearing about elasticsearch for a while now; but I'm not sure what it's actually for. I've read some blogposts and am still not totally sure of its applications. I'm about to take a course because I'm curious and I feel like I'm missing out on something. Does anyone here use elastisearch, and can you pls explain its applications?
j
stuff ;)
Mainly a search engine.
you have an HTTP-API where you store "indexes", which are basically trees and you can do complex search algorithms on them.
it's a document-based system you can push json models in.
It's based on lucene.apache.org/core which provides you with some NLP features or Levensthein "did you mean"
You can search nested objects and collections, define special indexers that will for example ignore spaces, certain word, "and,or,that", add tokenizers for a certain language, auto-suggest, and so on.
It's a fancy search engine accessed via HTTP. You could use for example a SQL database to write in and than push it on the ES engine. so that the reads are on ES but the writes are on SQL.
ES is also a noSQL solution so it's built for sharding and distribution, you can look up jepsen aphyr.com/posts/323-call-me-maybe-elasticsearch-1… and others :) and see some of possible the pitfalls
In production I use it to search for products or courses so that the customer can type in something like "off" and gets autocomplete suggestions like "office assistance" or something similar.
In the end if you don't want to write your own search engine, you use elastic search because they already have implemented a lot of features that come in handy.