Best practices for search in SharePoint Server 2010
Published: September 7, 2011
This article is one of a series of Best Practices articles for Microsoft SharePoint Server 2010. This article describes the best practices for enterprise search. Unless otherwise noted, this article applies to both SharePoint Server 2010 and Microsoft Search Server 2010. For more articles in the series, see Best practices (SharePoint Server 2010). For additional information about best practices for SharePoint Server 2010, see Best practices (SharePoint Server 2010) and Performance and capacity management (SharePoint Server 2010).
In this article:
1. Plan the deployment
Plan the search topology and plan for capacity and performance. You must plan an appropriate topology for enterprise search to provide an optimal search experience. For information about how to plan a search topology, see Plan the topology for enterprise search (SharePoint Server 2010). For information about capacity planning for SharePoint Server 2010 search, see Estimate performance and capacity requirements for SharePoint Server 2010 Search. For information about SharePoint Server 2010, see Performance and capacity management (SharePoint Server 2010).
Plan for findability. For a search technology to be useful, users must be able to easily find what they are looking for. For a good discussion of findability, see Organizing Information in SharePoint Server 2010 (http://go.microsoft.com/fwlink/p/?LinkId=226827) by Microsoft MVP Bill English.
Use managed properties and scopes to enhance the end-user search experience. Managed properties enable search administrators to create a one-to-many mapping of related properties to help users refine their search queries. For example, a search administrator can map crawled properties named "writer" and "author2" to the managed property "author" so that users who include the "author" property in their query also get search results for "writer" and "author2." For more information about managed properties, see Plan metadata properties for search (SharePoint Server 2010). You can help users refine their search queries by using search scopes, which limit searches to a content subset, such as a specific site. For more information, see Plan search scopes (SharePoint Server 2010). If you use custom queries, make sure that the appropriate properties are set to be used in scopes. For more information, see Manage metadata properties for search (SharePoint Server 2010)
Plan for IFilters .The crawler uses IFilters to read individual file types when it crawls content. If you are currently using 32-bit IFilters in a Microsoft Office SharePoint Server 2007 farm, you must obtain 64-bit IFilters from the appropriate vendor for SharePoint Server 2010. For information about the 64-bit IFilters that are included in SharePoint Server 2010 by default, see File types and IFilters reference (SharePoint Server 2010).
Create service level agreements. Ensure that service level agreements (SLAs) for content crawls are agreed to before deployment. For information about how to plan content crawls, see Plan for crawling and federation (SharePoint Server 2010).
2. Start with a well-configured infrastructure
Deploy two or more query components and crawl components for redundancy and increased availability. For more information, see Search architectures for SharePoint Server 2010: Model. Increasing the number of query components and crawl components can improve performance. For more information, see Estimate performance and capacity requirements for SharePoint Server 2010 Search.
Use at least two database servers to host the content databases and the databases for the Search service application (including crawl, property, and administrative databases). For more database recommendations, see Storage and SQL Server capacity planning and configuration (SharePoint Server 2010) and Best practices for SQL Server 2008 in a SharePoint Server 2010 farm.
Use a gigabit network for intra-farm connections.
3. Manage access by using Windows security groups or by using role claims for forms-based authentication or authentication using a Security Assertion Markup Language (SAML) security token
We recommend that you add users to Windows security groups or role claims instead of adding users to SharePoint groups for the following reasons:
Because changes to Windows security groups do not directly affect the access control entries (ACEs) on SharePoint sites, you do not have to perform a new crawl when user accounts within those Windows security groups are changed.
During the indexing process, the system stores the ACE of each user who was added to a SharePoint group instead of the ACE of the SharePoint group itself. This process supports approximately 1000 users per access control list (ACL), after which the "Parameter is incorrect" error causes crawling to fail.
For more information, see Choose security groups (SharePoint Server 2010) and Configure claims authentication (SharePoint Server 2010).
4. Defragment the search database
The search database contains metadata and ACLs of crawled content. Over a series of crawls, the search database can become fragmented. To improve performance of crawls and queries, periodically defragment the search database. For more information, see Database maintenance for SharePoint 2010 Products.
If you are mirroring the computers that run SQL Server, turn mirroring off before you defragment the search database and turn it back on after defragmentation is completed.
5. Monitor SQL Server latency
Search is I/O intensive for SQL Server. For best search performance, we recommend that you follow the guidance for small, medium, and large farms that is provided in Estimate performance and capacity requirements for SharePoint Server 2010 Search.
6. Test the crawling and querying subsystems after you change any configuration or apply updates
We recommend that you test the crawling and querying functionality of the server farm after you make configuration changes or apply updates. An easy way to do this is to create a temporary content source that is used only for this purpose. To test, we recommend that you crawl ten items — for example .txt files on a file share — and then perform search queries for those files. Make sure that the test items are currently not in the index. It is helpful if they contain unique words that will be displayed at the top of the search results page when queried. After the test is complete, we recommend that you delete the content source that you created for this test. Doing this removes the items that you crawled from the index and those test items will not appear in search results after you are finished testing. For information about crawling content, see Plan for crawling and federation (SharePoint Server 2010) and Manage crawling (SharePoint Server 2010).
7. Review the antivirus policy
When you use certain file-level antivirus software programs in SharePoint Server 2010, you should exclude certain folders from being scanned. If you do not exclude these folders, you can experience many unexpected issues. For more information, see the following article in the Microsoft Knowledge Base: 952167: Certain folders may have to be excluded from antivirus scanning when you use a file-level antivirus program in SharePoint (http://go.microsoft.com/fwlink/p/?LinkId=123963).
The SharePoint Server 2010 Content Publishing team thanks the following contributors to this article:
Luca Bandinelli, Microsoft SharePoint Customer Advisory Team
Dan Blood, Microsoft SharePoint Customer Advisory Team
Sid Shah, Microsoft SharePoint Search Product Team
James Sturms, Microsoft SharePoint Search Product Team
September 7, 2011