Overall Satisfaction with Elasticsearch
We use Elasticsearch for our online (realtime) search engine. We've indexed over 2 billion documents, including every physician, hospital, and clinic in the United States. We started using ES from the beginning since I had a bunch of great experiences with the technology from my last job. We load data into Elasticsearch from multiple locations, including Postgres and BigQuery. On top of Elasticsearch, we've built a number of analytics tools that let us not only search but also deliver analytics for our stored data -- like top physicians performing a specific service and geography-based analyses. Overall we're super happy with Elasticsearch.
- Super-fast search on millions of documents. We've got over 2 billion documents in our index and the retrieve speeds are still in the < 1-second range.
- Analytics on top of your search. If you organize your data appropriately, Elasticsearch can serve as a distributed OLAP system
- Elasticsearch is great for geographic data as well, including searching and filtering with geojson, and a variety of geospatial algorithms.
- Elasticsearch is highly distributed, but it takes time to tune so you get the right performance out of your cluster.
- The query language is not SQL, so it's not a straightforward conversion from an RDBMS to Elasticsearch for searching through data.
- There are lots of ways to insert data into Elasticsearch, and some are better than others (batch vs. single insert). Need to experiment with your own data and environment.
- We have had great luck with implementing Elasticsearch for our search and analytics use cases.
- While the operational burden is not minimal, operating a cluster of servers, using a custom query language, writing Elasticsearch-specific bulk insert code, the performance and the relative operational ease of Elasticsearch are unparalleled.
- We've easily saved hundreds of thousands of dollars implementing Elasticsearch vs. RDBMS vs. other no-SQL solutions for our specific set of problems.
When we first evaluated Elasticsearch, we compared it with alternatives like traditional RDBMS products (Postgres, MySQL) as well as other noSQL solutions like Cassandra & MongoDB. For our use case, Elasticsearch delivered on two fronts. First, we got a world-class search engine out of it, that we custom-built for our specific domain (healthcare). We've got, easily, the most expressive (easy to use & powerful) healthcare search engine out there. Second, along with the search, we also received an analytics engine that could do most analytics jobs as quickly as it retrieved search results. Overall, it would be very difficult for us to find a single solution for these two different problems.
Elasticsearch is extremely well suited for structured (faceted) search, full-text search, and analytics workloads. Elasticsearch and the ELK stack are also a good fit for operations teams that want to be able to interrogate their logs in an online (read: fast) query tool. Elastic is amazing at creating super fast search experiences over very large datasets, where traditional RDBMS systems are either too costly or too slow.