Amazon CloudSearch vs Elasticsearch: What are the differences?
What is Amazon CloudSearch? Set up, manage, and scale a search solution for your website or application. Amazon CloudSearch enables you to search large collections of data such as web pages, document files, forum posts, or product information. With a few clicks in the AWS Management Console, you can create a search domain, upload the data you want to make searchable to Amazon CloudSearch, and the search service automatically provisions the required technology resources and deploys a highly tuned search index.
What is Elasticsearch? Open Source, Distributed, RESTful Search Engine. Elasticsearch is a distributed, RESTful search and analytics engine capable of storing data and searching it in near real time. Elasticsearch, Kibana, Beats and Logstash are the Elastic Stack (sometimes called the ELK Stack).
Amazon CloudSearch and Elasticsearch can be categorized as "Search as a Service" tools.
Some of the features offered by Amazon CloudSearch are:
- Simple to Configure – You can make your data searchable using the AWS Management Console, API calls, or command line tools. Simply point to a sample set of data, and Amazon CloudSearch automatically proposes a list of index fields and a suggested configuration.
- Automatic Scaling For Data &
- Traffic – Amazon CloudSearch scales up and down seamlessly as the amount of data or query volume changes.
On the other hand, Elasticsearch provides the following key features:
- Distributed and Highly Available Search Engine.
- Multi Tenant with Multi Types.
- Various set of APIs including RESTful
"Managed" is the primary reason why developers consider Amazon CloudSearch over the competitors, whereas "Powerful api" was stated as the key factor in picking Elasticsearch.
Elasticsearch is an open source tool with 42.4K GitHub stars and 14.2K GitHub forks. Here's a link to Elasticsearch's open source repository on GitHub.
According to the StackShare community, Elasticsearch has a broader approval, being mentioned in 2000 company stacks & 976 developers stacks; compared to Amazon CloudSearch, which is listed in 16 company stacks and 6 developer stacks.
What is Amazon CloudSearch?
What is Elasticsearch?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
What are the cons of using Amazon CloudSearch?
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
Elasticsearch is the engine that powers search on the site. From a high level perspective, it’s a Lucene wrapper that exposes Lucene’s features via a RESTful API. It handles the distribution of data and simplifies scaling, among other things.
Given that we are on AWS, we use an AWS cloud plugin for Elasticsearch that makes it easy to work in the cloud. It allows us to add nodes without much hassle. It will take care of figuring out if a new node has joined the cluster, and, if so, Elasticsearch will proceed to move data to that new node. It works the same way when a node goes down. It will remove that node based on the AWS cluster configuration.
The very first version of the search was just a Postgres database query. It wasn’t terribly efficient, and then at some point, we moved over to ElasticSearch, and then since then, Andrew just did a lot of work with it, so ElasticSearch is amazing, but out of the box, it doesn’t come configured with all the nice things that are there, but you spend a lot of time figuring out how to put it all together to add stemming, auto suggestions, all kinds of different things, like even spelling adjustments and tomato/tomatoes, that would return different results, so Andrew did a ton of work to make it really, really nice and build a very simple Ruby gem called SearchKick.
We use ElasticSearch for
- Session Logs
We originally self managed the ElasticSearch clusters, but due to our small ops team size we opt to move things to managed AWS services where possible.
The managed servers, however, do not allow us to manage our own backups and a restore actually requires us to open a support ticket with them. We ended up setting up our own nightly backup since we do per day indexes for the logs/analytics.
Elasticsearch has good tooling and supports a large api that makes it ideal for denormalizing data. It has a simple to use aggregations api that tends to encompass most of what I need a BI tool to do, especially in the early going (when paired with Kibana). It's also handy when you just want to search some text.
Self taught : acquired knowledge or skill on one's own initiative. Open Source Search & Analytics. -time search and analytics engine. Search engine based on Lucene. It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents.