La configuration du moteur de recherche de SharePoint pour l’indexation des documents de type PDF est un sujet largement traité comme, par exemple, le tutoriel complet :
- Indexing Adobe PDFs in SharePoint Foundation 2010
- How to install and configure Adobe PDF iFilter 9 for SharePoint 2010
Et même sur la page officielle du filtre d’indexation d’ADOBE :
On y trouve d’ailleurs 3 documents PDF pour activer ce filtre sur Exchange, SharePoint et SQL Server :
- Configuring PDF iFilter for MS Exchange Server 2007.pdf
- Configuring PDF iFilter for MS Sharepoint 2007.pdf
- Configuring PDF iFilter for MS SQL Server 2005.pdf
Malgré toutes ces explications, il y a plusieurs détails à ajouter qui sont dispersés dans ces différentes documentations.
Ajouter le chemin BIN dans le Path
Dans la page officielle d’ADOBE; ce petit chapitre a une importance collossale :
After installing the PDF iFilter, it is recommended that you set your system PATH environment variable to the "bin" folder of the "Ifilter" installation. For example, from the "Control Panel\System\Advanced\Environment Variables" tab, append to PATH "C:\Program Files\Adobe\Adobe PDF iFilter 9 for 64-bit platforms\bin\" and then restart the computer
En effet, si ce chemin n’est pas ajouté dans le PATH du système de votre serveur d’indexation, il y a toutes les chances que celui-ci ne puisse pas crawler correctement votre contenu et donc permettre à vos utilisateurs une recherche FullText des documents PDF.
J’ai testé en production et cela nous a corrigé ce soucis. En revanche, cela ne permet pas pour autant d’indexer un document protégé.
Ajouter les répertoires d’indexation dans les exceptions de votre Antivirus
Cette question permet d’accélérer le temps d’indexation du contenu, car dans le cas contraire, les répertoires de travail du moteur de recherche seront sans arrêt scrutés et analysé par l’antivirus.
Il y a donc 2 répertoires à ajouter en exception, selon votre configuration et si elle est totalement basique :
- Windows SharePoint Services V3 (2007) :
- C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\
- C:\Documents and Settings\[ServiceAccount]\Local Settings\Temp\gthrsvc\
- Windows SharePoint Services V4 (2010) :
- C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\
- C:\Users\svc_spssql\AppData\Local\Temp\gthrsvc_SPSearch4\
- Microsoft Office SharePoint Server (2007) :
- C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\
- C:\Documents and Settings\svc_spssql\Local Settings\Temp\gthrsvc\
- Microsoft SharePoint Server (2010) :
- C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\
- C:\Users\svc_spssql\AppData\Local\Temp\gthrsvc_OSearch14\
Augmentation des ressources mémoires allouées au moteur d’indexation
Dans le cas classique, l’indexation des documents PDF est lourde pour le serveur, ce qui vous fait apparaître des message d’erreur dans l’Event Viewer de Windows tel que :
Event Type: Information
Event Source: Windows SharePoint Services 3 Search
Event Category: Gatherer
Event ID: 2478
Date: 12/28/2012
Time: 9:12:31 AM
User: N/A
Computer: XXXXXX
Description:
The search service stopped the filter daemon because it was consuming too many resources. A new daemon will automatically be started, and no user action is required.For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Et ceci toutes les minutes, si le moteur est en cours d’indexation d’une liste de fichier PDF.
La solution est fournie sur un forum (CF. Search Service Stopped the filter daemon Sharepoint) :
IFilter Issues - the Adobe PDF IFilter can only filter one file at a time and that will slow crawls down, and has a high reject rate for new PDFs
Solution: Use a retail PDF filter from pdflib.com or Foxit
Not enought Memory Allocated to Filter Process - an aspect of the crawling process is then the filtering deamons use up to much memory (mssdmn.exe) they get automatically terminated and restarted. There is of course a windup time when this happend and can slow down your crawling. The current default setting is pretty low (around 100M) so is easy to trip when filter large files. You can and should increase the memory allocation by adjusting the following registry keys
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\12.0\Search\Global\Gathering Manager: set DedicatedFilterProcessMemoryQuota = 200000000 Decimal
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\12.0\Search\Global\Gathering Manager: set FilterProcessMemoryQuota = 200000000 Decimal
Bad File Retries - there is a setting in the registry that controls the number of times a file is retried on error. This will severly slow down incremental crawls as the default is 100. This retry count can be adjust by this key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\12.0\Search\Global\Gathering Manager: set DeleteOnErrorInterval = 4 DecimalGeneral Architecture Issues - Ensure that you have at least 2 Gig of free memory available before your crawl even starts and that you have at least 2 real processors available.
Ainsi, suivant votre version de SharePoint, vous pouvez modifier les clés de registres selon ces valeurs :
Windows SharePoint Services V3 (2007) :
KEY: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0\Search\Global\Gathering Manager
Item: FilterProcessMemoryQuota
Original Value: 104857600 (Decimal) > 100 MB
New value: 200000000 (Decimal) > ~200 MB
Item: DedicatedFilterProcessMemoryQuota
Original Value: 104857600 (Decimal)
New value: 200000000 (Decimal)Item: DeleteOnErrorInterval
Original Value: 100 (Decimal)
New value: 4 (Decimal)
Microsoft Office SharePoint Server (2007) :
KEY: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\12.0\Search\Global\Gathering Manager
Item: FilterProcessMemoryQuota
Original Value: 104857600 (Decimal)
New value: 200000000 (Decimal)Item: DedicatedFilterProcessMemoryQuota
Original Value: 104857600 (Decimal)
New value: 200000000 (Decimal)Item: DeleteOnErrorInterval
Original Value: 100 (Decimal)
New value: 4 (Decimal)
Windows SharePoint Services V4 (2010) :
KEY: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\14.0\Search\Global\Gathering Manager
Item: FilterProcessMemoryQuota
Original Value: 104857600 (Decimal)
New value: 200000000 (Decimal)Item: DedicatedFilterProcessMemoryQuota
Original Value: 104857600 (Decimal)
New value: 200000000 (Decimal)
Microsoft SharePoint Server (2010) :
KEY: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\14.0\Search\Global\Gathering Manager
Item: FilterProcessMemoryQuota
Original Value: 104857600 (Decimal)
New value: 200000000 (Decimal)Item: DedicatedFilterProcessMemoryQuota
Original Value: 104857600 (Decimal)
New value: 200000000 (Decimal)
Sur une ferme de production, on peut voir immédiatement la différence, car les messages d’erreur ne surviennent plus et la mémoire des démons tournent en dessous de la limite maximale allouée :
Conclusion
Une fois ces modifications effectuées, il faut alors redémarrer le service du moteur de recherche selon votre version, voir redémarrer votre serveur afin de recharger entièrement la configuration.
Romelard Fabrice [MVP]
Commentaires
Enregistrer un commentaire