Azure Search is not as mature as Apache Solr at this point. So the range of query flexibility is less than Solr. Also, when indexing content goes beyond 1 TB, it might become costly for Azure Search.
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 …
Solr spins up nicely and works effectively for small enterprise environments providing helpful mechanisms for fuzzy searches and facetted searching. For larger enterprises with complex business solutions you'll find the need to hire an expert Solr engineer to optimize the powerful platform to your needs. Internationalization is tricky with Solr and many hosting solutions may limit you to a latin character set.
Incredibly robust software for an enterprise organization to plug into their application. If you have a full development resource team at your disposal, this is great software and I highly recommend it. Largely, however, you won't be able to use this prior to the enterprise level. It's just too complicated and cumbersome of a product.
Easy to get started with Apache Solr. Whether it is tackling a setup issue or trying to learn some of the more advanced features, there are plenty of resources to help you out and get you going.
Performance. Apache Solr allows for a lot of custom tuning (if needed) and provides great out of the box performance for searching on large data sets.
Maintenance. After setting up Solr in a production environment there are plenty of tools provided to help you maintain and update your application. Apache Solr comes with great fault tolerance built in and has proven to be very reliable.
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.
These examples are due to the way we use Apache Solr. I think we have had the same problems with other NoSQL databases (but perhaps not the same solution). High data volumes of data and a lot of users were the causes.
We have lot of classifications and lot of data for each classification. This gave us several problems:
First: We couldn't keep all our data in Solr. Then we have all data in our MySQL DB and searching data in Solr. So we need to be sure to update and match the 2 databases in the same time.
Second: We needed several load balanced Solr databases.
Third: We needed to update all the databases and keep old data status.
If I don't speak about problems due to our lack of experience, the main Solr problem came from frequency of updates vs validation of several database. We encountered several locks due to this (our ops team didn't want to use real clustering, so all DB weren't updated). Problem messages were not always clear and we several days to understand the problems.
It's an enterprise level product so you need to have the budget for it.
Challenging-to-impossible for a non-technical administrator to implement.
It further locks you into Microsoft's ecosystem and doesn't play well with non-Microsoft software. Depending on your point of view, this can be a pro or a con.
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.