Azure search: a beginner's guide

In the .NET Oxford June meetup, I presented a beginners guide to Azure search for developers have not had time to look into it yet and may not know where to start. The intention was to show just how easy it can be!

Azure Search is something the I'd not really used in the past. Like a lot of people, I'd worked through the .NET example that lets you do some searching through hotels. Following that, I've been very good at asking developers on the team at Ridgeway to do the legwork. As I'm sitting writing this post, my website currently doesn't have a search feature, and it something I've been meaning to add for a while and been putting off. There is a quote I recall time and time again by Peter Drucker says "People learn the most when teaching others", and i find this to be true in everything, not just work. I first realised it helping friends learn to juggle when I was younger; in learning how to explain it, I had to understand it much better.

Having a goal to aim for also certainly helps, and a deadline for a presentation is a pretty good motivator too! With a lightning talk at .NET Oxford and an idea of something I needed, I now had no real excuse other than time.

So what did I talk about?

The aim of my talk was to give people just enough information to get them interested in Azure Search and hopefully that extra bit of motivation to go and try it out. With that in mind, I split my talk in to two parts. The first part was a brief overview of Azure Search. I took a little look at where it came from and the basics of what it can be used for. For the purposes of my talk, I spoke it a little detail about indexes, documents, and scoring profiles. Also taking a look at the basic costs - as with most things in Azure, there is quite a bit you can achieve at little or no cost.

The second half is more hands-on; in a series of steps I walk through creating the index using examples in Postman and LinqPad. The next step is to look at the blog content in Kentico Cloud. Using the Kentico Cloud API, I extract all of the published blog posts and then transform them (using a nice javascript library that I found called JSONata) into a structure that Azure Search is looking for. From there, there I show how that content is then pushe up in to Azure Search (again, using Postman and LinqPad). Finally - once we can all see the data in the Azure Portal - I show some examples (only in LinqPad this time) of queryting that data and how different scoring profiles affect the results.

The very last thing I showed was AzSearch.js. This is an awesome tool to create a simple UI form your search index at the click of a button. Why is this so cool? Well it means that in no time at all, you can create some content in something like Kentico Cloud, convert that content and push it into Azure Search, and the surface that content in a web application. End-to-end, this would probably take about 20 minutes. If you then want to customise that output from AzSearch, you can modify the app and also use moustache to format the output.

The result

All in all, the presentation went really well. I concentrated on keeping the slides very light and letting the content in the demos do the talking. A slight niggle at the beginning with a failing wifi connection cost my around 5 minutes, which seemed like an eternity at the time.

The main takeaway for me was that planning is key to these presentations. I spent a great deal of time investigating various parts of Azure Search and surrounding technology before really thinking about how and what I actually wanted to delivery. THis had me rewriting my slide more often than I would like to admit. The last rewrite followed a simple exercise of defining:

  1. Who the target audience are
  2. What do I want them to take away

After that, everything was fairly straight forward.

I had a few people come up and thank me for the talk afterwards, which for me means that I’d achieve my goal; if just one person decided to check it out in more detail then that's a success.

Having a goal to aim for also certainly helps, and a deadline for a presentation is a pretty good motivator too!  With a lightning talk at .NET Oxford and an idea of something I needed, I now had no real excuse other than time.