Amazon Elasticsearch Service is a fully managed service that enables users to search, analyze, and visualize your log data at petabyte-scale. As a fully managed service, Amazon Elasticsearch Service manages the setup, deployment, configuration, patching, and monitoring of Elasticsearch clusters, so users can spend less time managing clusters and more time building applications. With a few clicks in the AWS console, users create scalable, secure, and available Elasticsearch clusters. Amazon…
N/A
Azure AI Search
Score 7.9 out of 10
N/A
Azure AI Search (formerly Azure Cognitive Search) is enterprise search as a service, from Microsoft.
Elasticsearch is a good alternative to relational databases for setting up complex searching of data. It's inbuilt features for slicing the data [in] different ways and its ability to add weights to search results makes it easy to set up complex searching scenarios. Given that data must be pushed to this service, it may be best suited for data that is not changing very rapidly.
If you have a medium amount of data (2GB - 2.4TB), high-security concerns, and search is a key requirement in your single-tenant application then Azure Search likely has you covered. If you have a small amount of data per tenant (EG, about 2GB), have low-security concerns, and a multi-tenant application where search is a key requirement, then Azure Search would likely be a good choice - though you would need to implement your own concept of sharding and managing across potentially multiple Azure Search instances. If you can reflect your would-be indexes in Azure Search by depositing the data in columns in a SQL table and just index it for full-text search - and that still fits your requirements - it's probably better to start with SQL Database then scale up to Azure Search when you need the advanced features like ranking or cognitive abilities.
Like virtually all Azure services, it has first-class treatment for .Net as the developer platform of choice, but largely ignores other options. While there is a first-party Python SDK, there are only community packages for other languages like Ruby and Node. Might be a game of roulette for those to be kept up-to-date. This might make it a non-starter for some teams that don't want to do the work to integrate with the REST API directly.
In my opinion, partitions inside of Azure Search don't count as data segregation for customers in a multi-tenant app, so any application where you have many customers with high-security concerns, Azure Search is probably a non-starter.
To elaborate on the multi-tenant issue: Azure Search's approach to pricing is pretty steep. While there is a free tier for small applications (50MB of content or less) the first paid tier is about 14x more expensive than the first SQL Database tier that supports full-text search. For many applications, it makes a lot more economic sense to just run some LIKE or CONTAINS queries on columns in a table rather than going with Azure Search.
It is an extremely powerful tool if the time is put in to learn it. There are basic skeletons of out of the box behavior, it involves having really dedicated people to learn how to use it to take full advantage of its capabilities. A 10 for the tool itself, minus 3 for the difficulty in learning and maintenance
Splunk is the most flexible of the 3 where you can manipulate the data to whatever fits your specific use case. Grafana has the most powerful capabilities but the steepest learning curve. Grafana also does offer the most flexibility as you can visualize almost any data source. Elastic is a solid middle ground between the 2
Azure Search is a competitor against Google's own AI autosuggest a feature. We went with Azure because our network security folks found it to be more robust from a security standpoint, which is incredibly important when you have proprietary manufacturing information. Additionally, we're a Microsoft shop so it plugged into our cloud hosting package and client facing OS.