How to index PDF files in Azure Cloud Services environment


Description

When using the Sitecore Azure module to deploy Sitecore sites to the Azure Cloud Services, the Sitecore Content Search functionality does not index PDF files.
This occurs because the Adobe iFilter, which is required to index PDFs, is not enabled in such environments.
For general information about the iFilter integration with Sitecore, see the Developer's Guide to Item Buckets and Search document.

Solution

To install iFilters on Azure Cloud Services you need to perform the following steps:

  1. Navigate to the \App_Data\AzureOverrideFiles folder and create a new one (e.g. "ExternalComponent").
  2. Download the iFilter pack to the previous folder.
  3. Open the file in editing mode \App_Data\AzureOverrideFiles\StartUp.cmd.
  4. Add a new line as follows:
      %windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.processModel.idleTimeout:00:00:00"
      ECHO  Installing IFilters
      start %RoleRoot%\approot\ExternalComponents\FilterPack64bit.exe /passive /norestart /quiet
  5. Save the file.
  6. Upgrade files on your farm using the Azure module.

Note: The Windows Search Service should be enabled on the Farm. You can do it manually or using the following PowerShell script:

Import-Module ServerManager
$check2 = Get-WindowsFeature Search-Service 
If (!$check2.Installed) {
    Add-WindowsFeature Search-Service
}

Enabling Search Services requires server restart. You can do it using suspend/start webrole using the Azure module or add "-restart" command to the above-mentioned powerShell script.

Credits

The solution was originally developed by Vicent Galiana and provided via the following blog post:
http://www.galysoft.es/post/2013/04/25/Enable-Ifilters-on-Sitecore-farm-on-Azure