Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

Problem:

SharePoint search crawling is going through my hardware load balancer (HLB) and this is putting undue stress on the HLB. I'd like to have search crawl directly against one of the WFEs and by-pass the HLB. Can you tell me what I need to change to make that work?


Setup:


Central Administration > Alternate Access Mappings

(1)

(2)

(3)


Central Administration > Search Service Application: Server Name Mappings


Central Administration > Search Service Application: Edit Content Source


Misc notes:

Currently search is working fine, except that it's going through my HLB. I expected setting the Content Source Start Addresses to "http://server1.company.com" would have changed that, but it hasn't. I did try creating crawl rules to include "http://server1.company.com/*" and exclude "https://sharepoint.company.com/*", but that has resulted in nothing getting crawled.

share|improve this question

3 Answers 3

up vote 0 down vote accepted

If you have a box in the farm dedicated to crawling, you can put a HOSTS file entry on that box to point to itself or the IP of box you want it to crawl.

This way, you aren't hitting the load balanced URL and going directly to the server.

See this page for more information: Configure a dedicated front-end Web server for crawling (Office SharePoint Server 2007)

share|improve this answer
    
This is interesting, despite it being for SharePoint 2007. Unfortunately I don't have a server dedicated to crawling. The one doing the crawling is one of the two WFEs. –  Elijah W. Gagne Nov 13 '12 at 20:29
    
I think it would still work... you would point that front-end to itself. –  Kit Menke Nov 13 '12 at 20:38
    
I did try that, but I didn't get any search results. To be clear, the host file entry contains the IP address of server1.company.com with the HLB address. A potential reason the crawl failed is that I believe it was trying HTTPS against the server IP address, but the server1 only has port 80 open. –  Elijah W. Gagne Nov 14 '12 at 2:22
1  
MS support told me to create a host file entry with the IP of the WFE and the hostname of the WFE. I have no idea why that worked (because ping for the WFE name went to the WFE IP without the host entry) but that solved my problem. –  Elijah W. Gagne Nov 20 '12 at 20:46

You can update the content source to use one of the WFE addresses instead of the load balanced URL. SharePoint will handle it from there.

share|improve this answer
    
But that's the way I currently have it and it's still using the HLB addresses. See above where Central Administration > Search Service Application: Edit Content Source has Start Addresses: http://server1.company.com. Or am I missing the correct place that you're talking about? –  Elijah W. Gagne Nov 13 '12 at 20:11
    
Shame on me for not thoroughly reading it all. How do you know search is hitting the HLB? –  David Lozzi Nov 13 '12 at 20:13
    
Because the Network Engineer is thoroughly monitoring the HLB traffic because we're seeing performance issues impacting many other apps behind the HLB. That, and now I'm using Wireshark to make sure I know exactly what's happening when I do a crawl. –  Elijah W. Gagne Nov 13 '12 at 20:27
    
I don't think you need the Server Name Mapping, since all of the URLs are AAMs, SharePoint will handle the URL to the items in the search results. Try removing it and see what happens. –  David Lozzi Nov 13 '12 at 20:41
    
Unfortunately no change of behavior by removing the Server Name Mapping. –  Elijah W. Gagne Nov 13 '12 at 21:27

You can run:

$listOfUri = New-Object System.Collections.Generic.List[System.Uri](1)
$zoneUrl = [Microsoft.SharePoint.Administration.SPUrlZone]'Default'
$webAppUrl = http://sharepointwa
$webApp = Get-SPWebApplication -Identity $webAppUrl
$webApp.SiteDataServers.Remove($zoneUrl)
$listOfUri.Add("http://crawltargetservername")
$webApp.SiteDataServers.Add($zoneUrl, $listOfUri);
$webApp.Update()

And for confirmation:

$webApp.SiteDataServers
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.