Azure Cloud Service環境でPDFファイルのインデックスを作成する方法


説明

Sitecore AzureモジュールでSitecoreサイトをAzure Cloud Servicesにデプロイする際、Sitecore Content Search機能ではPDFファイルのインデックス作成が実施されません。
このような環境では、PDFのインデックス作成に必要なAdobe iFilterが有効になっていないため、こうした事象が発生します。
iFilterとSitecoreの統合に関する一般情報については、「Developer's Guide to Item Buckets and Search」ドキュメンテーションを参照してください。

解決策

Azure Cloud ServicesでiFiltersをインストールするには、次の手順を実施する必要があります:

  1. \App_Data\AzureOverrideFilesフォルダに移動し、新しいフォルダを作成します(例:「ExternalComponent」
  2. iFilterパックをダウンロードし、1つ前のフォルダに配置します。
  3. ファイル(\App_Data\AzureOverrideFiles\StartUp.cmd)を編集モードで開きます。
  4. 以下に従って、新しい行を追加します:
      %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. ファイルを保存します。
  6. Azureモジュールを使用し、ファームのファイルをアップグレードします。

:Windows Search Serviceは、ファームで有効にする必要があります。手動または以下のPowerShellスクリプトで実施することができます:

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

Search Servicesを有効にするには、サーバの再起動が必要となります。Azureモジュールを使用してwebroleを中断・開始したり、または上記のPowerShellスクリプトのコマンドに「-restart」コマンドを追加したりすることで、これを実施することができます。

謝辞

この回避策は、元はVicent Galiana氏が開発され、以下のブログ投稿にてご提供いただいたものです:
http://www.galysoft.es/post/2013/04/25/Enable-Ifilters-on-Sitecore-farm-on-Azure