Microsoft’s Azure Search service is a search-as-a-service (a branch of software-as-a-service) offering from Microsoft on their Azure cloud platform.  It can be used to index millions of individual documents (you can think of these as individual records or rows in a traditional relational database) and search them with blazing speed using a variety of queries and filters.

The magic of Azure Search is that Microsoft has done the heavy lifting of bringing the best of Elasticsearch and Lucene to bear for you.  You can search in 56 languages using very sophisticated lexical analyzers.  By using their search service, you leave the concern of hosting, storage, and scaling with Microsoft while benefitting from their work in building an API around the service and keeping it up and running at a 99.9% up time.

I have written this series of posts to give a practical look at why you would want to use the service and use a fictitious site as a vehicle to show how you can quickly spin up a search service and use it to build a very useful, responsive, and robust search experience on a website.

I would recommend that you read this list of articles as primers, then come back here and walk through the example site with me.

We will be using the BlackBarLabs.Search.Azure library in our example.  This library was written to manage some of the common idiosyncrasies around indexing, primarily failures with adding items to the search index when the index is under load. The library manages retry logic and error handling for you.

To learn about Azure Search, we will create a search index and then create a small project that will allow us to search our data in some pretty interesting ways.  We will work through the following posts:

At the conclusion of this series of posts, you should have a good idea of how to use the BlackBarLabs.Search.Azure library to access the Azure Search service in your web application.