Using Examine on Azure

First, in order to support Lucene on Azure, you must have a Azure blob storage account and then you'll need to get the Azure Examine binaries.

Now its time to start configuring your app to run on Azure. First, you'll need to add an appSetting to your web.config:

<add key="blobStorage" value="DefaultEndpointsProtocol=http;AccountName=YOURACCOUNTNAME;AccountKey=YOURACCOUNTKEY"/>

If you don't want to register this value in your web.config, you should be able to add this setting with this same key to your Azure settings. Also note that DefaultEndpointsProtocol above can be either 'http' or 'https'

This next configuration change is highly recommended since when testing in Azure once in a while Lucene file locks would occur during rebuild so it is recommended to disable rebuilding the indexes on start-up if they don't exist:

<Examine RebuildOnAppStart="false">

Next we need to configure your index and search providers. This involves changing the 'type' attribute of your Indexers and Searchers to use the correct Azure Examine provider. Use the conversion below to determine the type of provider you'll need:

Non-Azure provider Azure provider
Examine.LuceneEngine.Providers.SimpleDataIndexer Examine.Azure.SimpleAzureLuceneIndexer
UmbracoExamine.UmbracoContentIndexer UmbracoExamine.Azure.AzureContentIndexer
UmbracoExamine.UmbracoMemberIndexer UmbracoExamine.Azure.AzureMemberIndexer
UmbracoExamine.PDF.PDFIndexer UmbracoExamine.PDF.Azure.AzurePDFIndexer
UmbracoExamine.UmbracoExamineSearcher UmbracoExamine.Azure.AzureSearcher

Lastly, you'll need to update your Examine Index config to change the location of your Index Sets. Change your 'IndexPath' to just be an alphanumeric string name such as "MyIndex", this will create a blog storage catalogue with this name to store you index in.

If you've created your own custom provider and want it to work with Azure, you will need to create a new Azure aware custom provider. This doesn't require much code and utilizes an AzureDirectory object for the LuceneDirectory used to index and search. For examples on how to do this, please get the source code for Examine and see how the above Azure providers have been created.

Last edited Apr 4, 2013 at 9:42 PM by Shandem, version 4