Einsatz von FirstSpirit Website Crawl bei der SharePoint Enterprise Suche

Die Einbindung von Inhaltsquellen in die SharePoint Enterprise Suche kann den Administrator vor unvorhersehbare Herausforderungen stellen. Die Indizierung eines Intranets sollte so im Standard über die Einbindung als Website eigentlich kein Problem darstellen. Funktioniert dies dann nicht, beginnt eine teils zeitintensive Fehler- und Lösungssuche. So erwartet SharePoint bei der initialen Verbindung zu einer zu indizierenden Webseite einen HTTP 200 Returncode.

Bei Indizierung eines Intranets auf Basis von FirstSpirit wird jedoch bei erstmaliger Verbindung ohne gesetztem Cookie erst ein HTTP 202 zurückgegeben. In der Dokumentation für Administratoren FirstSpirit™ 2018-07 steht hierzu der folgende Vermerk:

“Vor FirstSpirit-Version 5.2R2 wurde ACCEPTED (202) gesendet. Abhängig von der eingesetzten Infrastruktur wird dieser Status (202) nicht als „gültig“ akzeptiert, was beispielsweise zu Problemen bei der Indizierung führen kann (bekanntes Problem: SharePoint Crawler unter Windows). Das Standardverhalten wurde daher mit 5.2R2 umgestellt.”

Quelle: https://docs.e-spirit.com/odfs/dokumentation/administratore/ADMI_DE_FirstSpirit_Administrators.pdf

Das Verhalten ist über die IE Entwicklertools belegbar, die Webseite wird so von SharePoint nicht gecrawled, der Vorgang bricht ab.

Auch die Konfiguration einer Crawl-Regel unter Verwendung der Cookie Authentifizierung funktioniert nicht, hier ist ebenfalls der initiale Aufbau durch den fehlenden HTTP 200 nicht möglich.

Lösung ist hier das Schreiben eines kurzen PowerShell-Skriptes, welches über die Windows Server Aufgabenplanung, alternativ zur Regelplanung, regelmäßig gestartet werden kann.

Das Skript öffnet über einen Invoke-WebRequest zunächst die erste Seite des Intranets und liest den notwendigen Cookie JSESSIONID aus. Im Anschluss wird der Cookie der Suchkonfiguration näher der Crawl Regel hinzugefügt und der Crawl gestartet. Durch den gesetzten Cookie wird dann beim ersten Crawl-Zugriff der notwendige HTTP 200 zurückgegeben und die Webseite kann indiziert werden.