In diesem Artikel möchte ich euch kurz zeigen, wie man SharePoint Suchkomponenten austauschen kann.
Die SharePoint Suche ist ein sehr mächtiges Werkzeug und besitzt deshalb auch eine gewisse Komplexität. Ab und zu kann es deshalb auch passieren, dass die Suche nicht mehr so funktioniert, wie sie eigentlich sollte. Beliebte Probleme aus dem Alltag sind vollgelaufene Partitionen, wo der Suchindex liegt, oder auch unsanfte Neustarts während ein Crawl läuft.
Das Ergebnis in der Suchverwaltung (Zentraladministration) sieht dann häufig so aus:
Bei der Suchanwendungstopologie werden nicht mehr alle SharePoint Suchkomponenten als fehlerfrei dargestellt. Hatte man das Problem mit dem Plattenplatz, betrifft dies immer die Indexpartition. Ist die Inhaltsverarbeitung-Komponente fehlerhaft, wird eine Indexierung (Crawl) in eine Endlosschleife laufen und sich nicht mehr beenden. Im gezeigten Screenshot handelt es sich um eine SharePoint Farm, die nur aus einem SharePoint Server besteht. Die Suchdienstanwendung kann natürlich auf mehrere SharePoint Server aufgeteilt werden, um entweder mehr Performance oder Redundanz zu schaffen. Die Problembehebung funktioniert allerdings immer gleich, man muss nur aufpassen, dass man sich auf dem richtigen Server befindet.
Die einfachste und radikalste Lösung wäre es natürlich, die Suchdienstanwendung neu anzulegen. Dadurch würden auch die SharePoint Suchkomponenten neu erstellt werden, alle Anpassungen wären allerdings weg. Das fängt bei den Inhaltsquellen und zugehörigen Indexierung-Zeitplänen an und hört bei Ergebnisquellen auf. Deshalb ist das Neuanlegen der Suchdienstanwendung im Normalfall keine Option.
Dies ist eigentlich auch gar nicht notwendig, weil man die Topologie der Suchdienstanwendung problemlos anpassen kann. Dies hat den Vorteil, dass man bei mehreren SharePoint Servern recht einfach SharePoint Suchkomponenten auf andere Server auslagern kann. Nachfolgend gibt es ein kleines PowerShell Skript, dass die kaputte Suchkomponente (Inhaltsverarbeitung) in der Topologie durch eine neue und funktionierende Komponente ausgetauscht wird.
Add-PSSnapin Microsoft.SharePoint.Powershell # Holt die Suchdienstanwendung $ssa = Get-SPEnterpriseSearchServiceApplication # Holt sich die aktuelle Toplogie der Suchdienstanwendung $activeTopology = Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active # Holt sich den betreffenden Server (Aufpassen bei mehreren Servern!) $sphost = Get-SPEnterpriseSearchServiceInstance -Local # Erstellt eine Kopie der Topologie $clone = New-SPEnterpriseSearchTopology -SearchApplication $ssa -Clone -SearchTopology $activeTopology # Holt die ID der kaputten Komponente $componentID = (Get-SPEnterpriseSearchComponent -SearchTopology $clone -Identity ContentProcessingComponent1).componentID # Löscht die kaputte Komponente Remove-SPEnterpriseSearchComponent -Identity $componentID.Guid -SearchTopology $clone -Confirm:$false # Fügt eine neue Komponente hinzu New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $clone -SearchServiceInstance $sphost # Aktiviert die neue Topolgie Set-SPEnterpriseSearchTopology -Identity $clone
In Zeile 11 muss bei Identity
der Name der betroffenen SharePoint Suchkomponente angegeben werden. Meistens ist die Benennung so, wie auch in dem Beispiel aufgeführt. Möchte man dies allerdings überprüfen bzw. den richtigen Namen herausfinden, kann man sich die aktuellen Komponenten auch über PowerShell ausgeben lassen.
Add-PSSnapin Microsoft.SharePoint.Powershell # Holt die Suchdienstanwendung $ssa = Get-SPEnterpriseSearchServiceApplication # Holt sich die aktuelle Toplogie der Suchdienstanwendung $activeTopology = Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active Get-SPEnterpriseSearchComponent -SearchTopology $activeTopology
Nachdem die neue Topologie aktiviert wurde, sollte der Fehler in den SharePoint Suchkomponenten verschwunden sein und die Suche funktioniert wieder wie vorher.
Beim Hinzufügen von neuen Komponenten muss man natürlich das entsprechende Cmdlet nutzen:
- Administrator:
New-SPEnterpriseSearchAdminComponent
- Crawler:
New-SPEnterpriseSearchCrawlComponent
- Inhaltsverarbeitung:
New-SPEnterpriseSearchContentProcessingComponent
- Analyseverarbeitung:
New-SPEnterpriseSearchAnalyticsProcessingComponent
- Abfrageverarbeitung:
New-SPEnterpriseSearchQueryProcessingComponent
- Indexpartition:
New-SPEnterpriseSearchIndexComponent
In diesem Sinne,
Happy SharePointing 🙂
„Praktischerweise“ hat sich vor einigen Tagen auf meiner Entwicklungsumgebung einzelne Teile der Search App tatsächlich aufgelöst.
Danke für den Artikel. 🙂
Irgendwo musste ich ja einen Screenshot von einer kaputten Suche machen. 😉 Zum Glück war der Artikel schon einige Zeit vorher fertig, sonst wäre es echt verdächtig gewesen.