This is a short blog sharing my first experience with deploying onto Azure PaaS in regard to indexing.
Azure PaaS does not support Lucene search, only Azure Search (configured by default), Solr or Coveo.
I have added an update at the end showing that you can actually use Lucene but requires manual work.
Symptoms of the problem
We deployed our Sitecore 8.2 project to Azure and everything seems fine, until we tried to open a page that uses indexing, which crashed. I remembered that we still haven’t rebuilt our custom indices yet. So I tried to but it kept completing right away. It should take at least 20 minutes, but it was completing immediately.
I search google, looked at my custom configs again and checked what other reasons could’ve caused this but couldn’t find anything. I added a question to sitecore.stackoverflow.com and within few minutes I got the answer from @Tamas that Azure PaaS does not support Lucene. It only supports Azure Search, Solr and Coveo.
Luckily, the solution was really easy, simply copy the contents of the sitecore_master_index configuration file (Sitecore.ContentSearch.Azure.Index.Master.config) into your custom index file and update it accordingly. I’m not going to share the contents of the file since it may change between versions.
It seems Azure Search does not support field names that start with numbers whereas Lucene did. I had to rename a couple of fields, so be careful.
Azure Search is so messy with Sitecore. All my search-using features did not work correctly after switching to Azure Search and I couldn’t know why. Azure Search also doesn’t support fieldnames starting with underscore. Although Sitecore has updated the configs for this, but I still had issues with fieldnames.
With the deadline almost here, I couldn’t fix the search using Azure Search, so I forced Lucene to work on Azure by accessing my Sitecore installations using ftp, disabling all Azure Search configs and enabling Lucene configs. I had to do this on both CM and CD of course. All I had to do is follow the ‘Set up configuration files’ section in this article and do the reverse.