Still haven't found what you're looking for? Try Azure Search
November 23, 2018

Still haven't found what you're looking for? Try Azure Search

Erik Ralston | TrustRadius Reviewer
Score 10 out of 10
Vetted Review
Verified User

Overall Satisfaction with Azure Search

Azure Search provides an intelligent, AI-powered discovery engine for content in LiveTiles Cloud - an Intelligence Experience Platform (IXP) that allows anyone to build a website for their organization.
  • Azure Search provides a fully-managed service for loading, indexing, and querying content.
  • Azure Search has an easy C# SDK that allows you to implement loading and retrieving data from the service very easy. Any developer with some Microsoft experience should feel immediate familiarity.
  • Azure Search has a robust set of abilities around slicing and presenting the data during a search, such as narrowing by geospatial data and providing an auto-complete capabilities via "Suggesters".
  • Azure Search has one-of-a-kind "Cognitive Search" capabilities that enable running AI algorithms over data to enrich it before it is stored into the service. For example, one could automatically do a sentiment analysis when ingesting the data and store that as one of the searchable fields on the content.
  • 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.
  • Azure Search enabled us to stand up a robust search capability with very few developer hours.
  • The fully-managed service of Azure Search means we get low cost of management (EG, DevOps) going into the future, even though the cost of the service itself definitely reflects the time saved.
  • Azure Search counts as a "Cognitive Service" for Microsoft Azure consumption and aligns our products with Microsoft's interests of driving an AI-first approach in the enterprise. Microsoft Partners, service and product companies alike, should be looking to align with this AI vision as it means favorable treatment from the Microsoft sales teams.
As I've mentioned, the biggest competitor to Azure Search is actually Azure SQL Database. It doesn't have as many features, but it's more economical and most .Net applications will have one already. As long as you can arrive at a schema and ranking strategy, it's a "good enough" solution.

There are a variety of search technologies (Lucene, Solr, Elasticsearch) that implement a search service. Some of them are even open source, though I would only say "free" if you do not value your time. They most likely need to be hosted via Container (or VM if you're old school), so you're incurring DevOps costs to not only set them up but monitor and maintain them yourself.

If you're already on AWS, there is almost no reason to use Azure Search. Unless you're already multi-cloud, desperately need the cognitive abilities, and don't mind a potential performance hit from looking across datacenters (hey, it could happen), you should probably just use Amazon CloudSearch.
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.