sharepointszu

NOT Just another SharePoint Blog, this is a Swiss SharePointCommunity Blog

Mit der SharePoint 2013 Search Topologie arbeiten

with one comment

In SharePoint 2013 hatten wir ja das Vergnügen, ein GUI für die Verwaltung der Search Topologie zu haben. Diese Zeiten sind endgültig vorbei. Des einen Leid, des anderen Freud. Neu muss die Topologie der Suche per PowerShell verwaltet werden. Wie man das macht, entnehmt ihr dem unten folgenden Code.

Grundsätzlich unterscheiden wir folgende Rollen, welche auf verschiedenen Servern redundant aufgebaut werden können:

  1. Crawl Komponente
  2. Content Processing Komponente
  3. Analytics Komponente
  4. Index Komponente (schreibt den Index)
  5. Query Processing Komponente
  6. Admin Komponente

Im Beispiel wird die Suche auf zwei Frontends verteilt, auf welcher die Query Rolle läuft und auf zwei Application Server, die alle anderen Rollen redundant verpasst bekommen, zusätzlich soll die Indexpartition 0 auf beide Server gespiegelt werden.

SearchTop

 

Und hier kommt der Code:

# Abfragen des SharePoint 2013 Search Status
Get-SPEnterpriseSearchStatus -SearchApplication (Get-SPEnterpriseSearchServiceApplication)

# Definieren der Server
$wfe1 = Get-SPEnterpriseSearchServiceInstance -Identity "yourserver"
$wfe2 = Get-SPEnterpriseSearchServiceInstance -Identity "yourserver"
$app1 = Get-SPEnterpriseSearchServiceInstance -Identity "yourserver"
$app2 = Get-SPEnterpriseSearchServiceInstance -Identity "yourserver"

# Starten der Service Instanzen auf allen Servern
Start-SPEnterpriseSearchServiceInstance -Identity $wfe1
Start-SPEnterpriseSearchServiceInstance -Identity $wfe2
Start-SPEnterpriseSearchServiceInstance -Identity $app1
Start-SPEnterpriseSearchServiceInstance -Identity $app2

# Checken ob die Services alle online sind, bevor wir weiter machen
do {
    $globalState = 0
    $wfe1Stat = Get-SPEnterpriseSearchServiceInstance -Identity $wfe1
    if ($wfe1Stat.status = "online") {$globalState++}
    $wfe2Stat= Get-SPEnterpriseSearchServiceInstance -Identity $wfe2
    if ($wfe2Stat.status = "online") {$globalState++}
    $app1Stat = Get-SPEnterpriseSearchServiceInstance -Identity $app1
    if ($app1Stat.status = "online") {$globalState++}
    $app2Stat = Get-SPEnterpriseSearchServiceInstance -Identity $app2
    if ($app2Stat.status = "online") {$globalState++}
    Write-Host "There are $globalState Machines ready"
    if ($globalState -lt 4) {
        Write-Host "Waiting for 10 seconds..."
        Start-Sleep -s 10
    }
}
while ($globalState -lt 4)

# Search Service Applikatioin festlegen
$ssa = Get-SPEnterpriseSearchServiceApplication
$newTopology = New-SPEnterpriseSearchTopology -SearchApplication $ssa

# Frontend Rollen festlegen
New-SPEnterpriseSearchCrawlComponent -SearchTopology $newTopology -SearchServiceInstance $wfe1
New-SPEnterpriseSearchCrawlComponent -SearchTopology $newTopology -SearchServiceInstance $wfe2

# App Server Rollen festlegen
New-SPEnterpriseSearchAdminComponent -SearchTopology $newTopology -SearchServiceInstance $app1
New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $app1
New-SPEnterpriseSearchAnalyticsProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $app1
New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $app1
New-SPEnterpriseSearchIndexComponent -SearchTopology $newTopology -SearchServiceInstance $app1 -IndexPartition 0

New-SPEnterpriseSearchAdminComponent -SearchTopology $newTopology -SearchServiceInstance $app2
New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $app2
New-SPEnterpriseSearchAnalyticsProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $app2
New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $app2
New-SPEnterpriseSearchIndexComponent -SearchTopology $newTopology -SearchServiceInstance $app2 -IndexPartition 0

# Search Topologie aktivieren
Set-SPEnterpriseSearchTopology -Identity $newTopology

Achtung: Eine Neudefinition der Topologie funktioniert nur mit leerem Index. Heisst, ggf. müsst ihr zuerst den Indes zurücksetzen oder ein anderes Vorgehen wählen.

So long, Gruss Samuel

Written by sharepointszu

19. März 2013 at 12:25

Eine Antwort

Subscribe to comments with RSS.

  1. [...] with Search TopologySamuel Zürcher offers PowerShell Script to deploy a Search [...]


Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ photo

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.

Schließe dich 778 Followern an

%d Bloggern gefällt das: