Kentico Xperience digital experience platform has featured out-of-the-box support for Azure Search since version 11 back in 2017. Since then, there have been huge changes and improvements to the Kentico Xperience platform, and the latest iteration of its support for maintaining Azure Search indexes has been upgraded to take full advantage of them.
A quick history lesson
First, let's look at a quick history of how search and related features have evolved within the Kentico Xperience DXP, up to today.
Way back in 2009, Kentico 4 introduced "full-text search" support for sites. This began as direct SQL database search, but evolved and became known as "Smart Search", powered by Lucene.NET. Kentico added multiple types of index types, including standard indexes that directly indexed the content in the database, and a "crawler" index that would actually read and index the HTML output of pages, similarly to how leading search engines do it.
Both of these approaches to indexing your site have pros and cons.
For standard database-driven indexes, they were fast, well-structured, and could easily index hidden content such as categories, tags, metadata or related information. They could also easily index secure content behind a login on your site. However, they had trouble indexing other content that might be displayed within a page template, be it a listing, a related asset, or a widget displaying reusable content, or content drawn from a third-party system or integration.
Crawlers were excellent at indexing complex pages that included linked or related content from multiples places within your content tree, such as widget-driven landing pages, or listing pages, or even content from entirely external sources shown on your pages. But they lacked access to the underlying structure and context, and it could be difficult to get them to index secure or hidden content effectively. Work was usually also required to help identify the most important content on a page and avoid indexing the same repeated content over and over—for example your header and footer.
In 2017 with version 11, Kentico introduced first-class support for Azure Search. This was an exciting development as best-of-breed, third-party search providers have become extremely popular in recent years, and it's extremely difficult for traditional platform providers to keep up and compete with providers such as Microsoft, Google, and Algolia. However, the Azure Search integration was only compatible with standard content-tree-based indexes, not page crawlers.
Of course, for advanced search scenarios, there has always been the option to flex your .NET and customize your solution, which is very well supported using Kentico Xperience's libraries and SDKs. But it would be nice to have it all 'out-of-the-box'!
So until now, we had a few choices:
- Use Azure Search for structured content but no page crawlers
- Use the built-in Smart Search with support for unstructured page crawling
- Customize your code
The perfect solution
As of now with Kentico Xperience 13 Refresh 1, you can have the best of both worlds.
A new combined index can index structured fields from the page and also crawl or scrape the rendered page markup for areas that use the Page Builder and dynamic widgets. All of this is then indexed together in Azure Search using the powerful Kentico Xperience integration which continues to handle all of your search index updates automatically behind the scenes.
The benefits of utilizing a service as powerful as Azure Cognitive Search are huge, and having it tightly integrated with Kentico Xperience means you get all the power of a market-leading search service. And now that a single Azure Search index within Kentico Xperience supports all types of indexes in one, there are very few reasons not to consider it. For relatively small content sites they may even be supported on the free tier of the service, in which case it is a no-brainer.
If you haven't set up Azure Search before, it is extremely easy.
First, create a new Search Service within Microsoft Azure at https://portal.azure.com/. There are free and paid tiers available. Hot tip: if you have a Visual Studio subscription, you might even have some free monthly credit available to play with!
This will only take a couple of minutes. When it's done, jump into the "Keys" settings and grab your admin and query keys, which you'll need for the next step.
Next, create a new index within Kentico Xperience under Smart search > Azure indexes. This is where you put the name of your Azure Search index, and the admin and query keys.
Configure which site(s), cultures, and pages you want to include, and press Rebuild. You don't have to go and rebuild. You can preview your search results within the Azure Portal in the Search Explorer.
Previously, we used to weigh up the pros and cons of Local, Azure, or customized search solutions. Now with the new combined indexer, I firmly believe Azure Search is going to be the way to go for the vast majority of use cases. So if you haven't yet, give it some consideration! If you're already on Kentico Xperience 13, update to the latest Refresh today and give it a test drive.