Accéder au contenu principal

SharePoint : Détails de la configuration du moteur de recherche pour les documents PDF

 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 :

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 :

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 Decimal

General 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 :

image


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

Posts les plus consultés de ce blog

Redonner vie à une Microsoft Surface RT : le guide ultime vers Linux !

Vous avez une vieille Microsoft Surface RT qui traîne dans un tiroir ? Vous savez, cette tablette de 2012 devenue inutilisable depuis l'abandon officiel de Windows RT par Microsoft ? Ne la jetez surtout pas ! Dans ma dernière vidéo, je vous montre comment transformer cet appareil, autrefois considéré comme un "presse-papier", en une tablette Linux moderne et parfaitement fonctionnelle . Pourquoi ce projet ? L'objectif est simple : transformer ce matériel pour en faire un dashboard dédié à mon système Home Assistant. En installant postmarketOS , une version de Linux spécialement conçue pour les appareils ARM abandonnés, on redonne une seconde jeunesse à cette machine . Ce que vous allez apprendre dans ce tutoriel complet : La libération du matériel : Comment réinstaller la version d'origine pour passer outre les blocages de Windows 8.1 . Jailbreak & Secure Boot : La procédure indispensable pour déverrouiller la machine et permettre l'installation d...

Série de Videos sur Home Assistant intégrant la production Photovoltaïque

 Un certain nombre de vidéos sont en ligne pour intégrer sa production photovoltaïque dans Home Assistant en partant de la base. Installation de Home Assistant: On peut ensuite intégrer les composant des Micro-Onduleurs Enphase, mais aussi les batteries Enphase: Ou encore le composant de contrôle Ecojoko: Ce qui permet alors de faire des comparaisons entre les valeurs capturées: Des videos seront encore publiés dans les prochaines semaines sur différents aspects de cette solution. Fab

Mixer les batteries Enphase et Zendure : La solution ultime pour l'autoconsommation ?

Introduction Vous avez déjà une installation solaire équipée de micro-onduleurs Enphase , mais vous trouvez que le stockage officiel de la marque est trop coûteux ou difficile à installer en DIY ? Vous n'êtes pas seul. Aujourd'hui, je vous partage mon retour d'expérience complet sur une configuration qui intrigue beaucoup de monde : le couplage d'un système Zendure SolarFlow avec un environnement Enphase existant. Pourquoi vouloir mixer ces deux marques ? Le système Enphase est une référence en termes de fiabilité, mais l'ajout de batteries IQ Battery peut représenter un investissement lourd. À l'inverse, Zendure propose avec le SolarFlow une solution de stockage plug-and-play extrêmement flexible et souvent plus abordable. L'idée est simple : utiliser le SolarFlow comme "tampon" entre vos panneaux et vos micro-onduleurs pour stocker l'excédent de la journée et le réinjecter la nuit. Le montage : Est-ce vraiment compliqué ? Dans ma dernière ...