Question

I have finally managed to somewhat set up Search on SP2013. It's resolved my weird WebPart Access error I was getting when trying to navigate to the Search Center. The only issue now is my topology is riddled with issues.

Farm is 1 APP and 2WFE. I have just tried to setup the topology with 1APP and 1WFE.

  • APP1: Admin (Yellow)/Crawler(Green)/Content(Yellow)/Analytics(Yellow)
  • WFE1: Query(Red)/Index(Red)

How do I troubleshoot these errors? When I try and run a crawl it just goes "Starting" then idle on Refresh.

I tried cloning the Topology using: http://olivier-richard.azurewebsites.net/sharepoint-2013-repair-broken-search-service-low-cost/

That just turned up an error: Unable to change topology when Generation controller is not active.

Was it helpful?

Solution

IMO, You need to try one more time on changing the Search Topology.

The following list provides an overview of the tasks involved to change from the default search topology, without any content in the SharePoint Server 2013 search index, to a new search topology. Ensure that no crawls have been started and that the search index is empty. Start a search service instance on all the servers that you want to host search components on.

  • Create a new empty search topology.
  • Add search components to the new search topology.
  • Activate the new search topology.
  • Verify that the search topology is active.

Sample topology code is given below.

Specify the new servers you want to add search components to, start a search service instance (ssi) on these servers and create references to the search service instances. In this procedure we have used the example host names "myserver" for the servers as listed in the Target search topology table. At the Windows PowerShell command prompt, type the following command(s):

$hostA = Get-SPEnterpriseSearchServiceInstance -Identity "myserver1"
$hostB = Get-SPEnterpriseSearchServiceInstance -Identity "myserver2"
Start-SPEnterpriseSearchServiceInstance -Identity $hostA
Start-SPEnterpriseSearchServiceInstance -Identity $hostB

Wait until all the search service instances are running. At the Windows PowerShell command prompt, type the following commands until the commands return the state "Online" for each of the search service instances:

Get-SPEnterpriseSearchServiceInstance -Identity $hostA
Get-SPEnterpriseSearchServiceInstance -Identity $hostB

Create a new search topology and a reference to the new search topology. At the Windows PowerShell command prompt, type the following command(s):

$ssa = Get-SPEnterpriseSearchServiceApplication
$newTopology = New-SPEnterpriseSearchTopology -SearchApplication $ssa

Add all the search components to the new search topology. The following Windows PowerShell commands will create the search components of the new topology and assign them to the new servers. In this small enterprise search topology there is one index partition, index partition 0, to cater for a maximum of ten million items. This is indicated with the parameter -IndexPartition in the command New-SPEnterpriseSearchIndexComponent. The index partition has one index replica on virtual machine B and one index replica on virtual machine D. Each index replica will contain the exact same search index and is hosted on a different physical server to achieve fault tolerance. At the Windows PowerShell command prompt, type the following command(s)- Given for reference (can be customised according to your requirement):

New-SPEnterpriseSearchAdminComponent -SearchTopology $newTopology -SearchServiceInstance $hostA
New-SPEnterpriseSearchCrawlComponent -SearchTopology $newTopology -SearchServiceInstance $hostA
New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $hostA
New-SPEnterpriseSearchAnalyticsProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $hostA
New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $hostB
New-SPEnterpriseSearchIndexComponent -SearchTopology $newTopology -SearchServiceInstance $hostB -IndexPartition 0
New-SPEnterpriseSearchAdminComponent -SearchTopology $newTopology -SearchServiceInstance $hostC
New-SPEnterpriseSearchCrawlComponent -SearchTopology $newTopology -SearchServiceInstance $hostC
New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $hostC
New-SPEnterpriseSearchAnalyticsProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $hostC
New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $hostD
New-SPEnterpriseSearchIndexComponent -SearchTopology $newTopology -SearchServiceInstance $hostD -IndexPartition 0

Activate the new search topology. At the Windows PowerShell command prompt, type the following command:

Set-SPEnterpriseSearchTopology -Identity $newTopology

Verify that the new search topology is active. At the Windows PowerShell command prompt, type the following command:

Get-SPEnterpriseSearchTopology -SearchApplication $ssa

Verify that all components of the new search topology are running correctly. At the Windows PowerShell command prompt, type the following command:

Get-SPEnterpriseSearchStatus -SearchApplication $ssa -Text

My Search Topology Commands :How to make Two machine search service application using PowerShell?

Reference:https://technet.microsoft.com/en-us/library/jj862356.aspx

OTHER TIPS

A big shout out to everyone that helped, here is what resolved this issue.

A Few Quick Note:

  • When you provision Search or a new Topology, it takes a few minutes for things to get up and running. Many times I would have green/yellow/red indicators that would change to Green after a few minutes
  • I found that I had to clear the Index (CA --> SSA --> Crawling-Index Reset) when applying a new Topology. I was fine doing this since it was a fresh install.
  • I found I could only apply a new Topology if the previous Topology was in good health.

My Issue might be unique but there were two server issues that needed to be resolved.

  1. SSL policy errors have been encountered. Error code '0x6 RESOLUTION: Make sure the SharePoint Root Cert is in the Trusted store. Also make sure the Root Cert is in CA --> Security --> Manage Trust. You can export and import it or use PowerShell
  2. SSL policy errors have been encountered. Error code '0x2 RESOLUTION: This has to do with the SharePoint Services cert used by services such as Search. I tried adding this cert to the SharePoint Manage Trust in CA, I made sure it was trusted and pretty much anything under the sun. I HAD to change the server name to the FQDN. For us this mean SP13-WFE1 became SP13-WFE1.contoso.controller.svcs and SP13-WFE2...etc. I changed all farm servers. When changing the name using PowerShell make sure you are on the respective server. The command:

    Rename-SPServer -Identity "sp13-wfe1" -Name "sp13-wfe1.contoso.controller.svcs"

Rebooted the farm and then rebuilt Search Application using CA.

Once I rebuilt search, I rebuilt the topology using John Zachariah response in this thread. I tweaked it to match our setup.

I then did a full crawl and ran into an issue where crawl would just stop. Issue was I hadn't defined any Content Sources. So I added my two web applications.

Crawl ran like a charm, everything looked good. But when I went to search, I got an error. The Application wasn't attached to the Web Application. RESOLUTION: Under Manage Web Applications -> Repeat for each Web App -> Service Connections -> Check off your Search Application (if it's checked, uncheck save...check off save).

Then BOOM it all worked. Hopefully this helps someone with a stubborn search application.

Cheers, Robb

Licensed under: CC-BY-SA with attribution
Not affiliated with sharepoint.stackexchange
scroll top