了解在 SharePoint Server 2013 中爬网的最佳做法
搜索系统对内容进行爬网,以构建一个用户可以对其运行搜索查询的搜索索引。本文包含有关如何最有效地管理爬网的建议。
本文内容:
- 使用默认内容访问帐户对大部分内容进行爬网
- 有效使用内容源
- 对用户配置文件进行爬网,然后再对 SharePoint 网站进行爬网
- 使用连续爬网确保搜索结果为最新
- 使用爬网规则排除已爬网的不相关的内容
- 对 SharePoint Web 应用程序的默认区域进行爬网
- 降低对 SharePoint 爬网目标进行爬网的影响
- 使用 Active Directory 组而非单个用户的权限
- 添加第二个爬网组件来提供容错能力
- 管理环境资源以改善爬网性能
- 确保没有爬网处于活动状态,然后再更改搜索拓扑
- 从爬网主机上删除爬网组件,然后从服务器场删除主机
- 更改爬网配置或应用更新后,测试爬网和查询功能
- 使用爬网日志和爬网运行状况报告诊断问题
注意: |
因为 SharePoint 2013 在 Internet Information Services (IIS) 中作为网站运行,所以管理员和用户依赖于浏览器提供的辅助功能。SharePoint 2013 支持受支持的浏览器的辅助功能。有关详细信息,请参阅以下资源: |
使用默认内容访问帐户对大部分内容进行爬网
默认内容访问帐户是您为 SharePoint 2013 Search Service 指定的域帐户,默认用于爬网。为了简单起见,最好尽可能使用此帐户对内容源指定的内容进行爬网。若要更改默认内容访问帐户,请参阅在 SharePoint 2013 中更改爬网的默认帐户。
如果您无法使用默认内容访问帐户对特定 URL 进行爬网(例如,因为安全原因),则可以针对验证爬网程序创建一个爬网规则来指定以下备选方法之一:
- 不同的内容访问帐户
- 客户端证书
- 窗体凭据
- 用于爬网的 Cookie
- 匿名访问
有关详细信息,请参阅在 SharePoint Server 2013 中管理爬网规则。
有效使用内容源
内容源是 Search Service 应用程序中用于指定以下内容之一的一组选项:
- 一个或多个用于爬网的开始地址。
- 开始地址(如 SharePoint 网站、文件共享或业务线数据)中的内容类型。您可以仅指定一个在内容源中爬网的内容类型。例如,可以使用一个内容源对 SharePoint 网站进行爬网,也可以使用不同的内容源对文件共享进行爬网。
- 完全爬网或增量爬网的爬网计划和爬网优先级,适用于内容源指定的所有内容库。
创建 Search Service 应用程序时,搜索系统将自动创建并配置一个内容源,称为“本地 SharePoint 网站”。这个预配置的内容源用于对用户配置文件进行爬网,以及对 Search Service 应用程序关联的 Web 应用程序中的所有 SharePoint 网站进行爬网。您还可以使用此内容源对其他 SharePoint 服务器场(如 SharePoint Server 2007 服务器场、SharePoint Server 2010 服务器场或其他 SharePoint Server 2013 服务器场)中的内容进行爬网。
当您想要执行下列任一操作时,请创建其他内容源:
- 对其他内容类型进行爬网
- 限制或增加对其进行爬网的内容量
- 对某些内容进行爬网的频率更高或更低
- 为对某些内容进行爬网设置不同的优先级(这适用于完全爬网或增量爬网,但不适用于连续爬网)
- 根据不同的计划对某些内容进行爬网(这适用于完全爬网和增量爬网,但不适用于连续爬网)
然而,若要尽可能简化管理,建议您限制所创建和使用的内容源的数量。
使用内容源计划爬网
您可以编辑预配置的内容源“本地 SharePoint 网站”以指定爬网计划;不会默认指定一个爬网计划。对于任何内容源,您可以手动启动爬网,但建议您计划增量爬网或启用连续爬网以确保可以定期对内容进行爬网。
考虑根据不同的计划使用不同的内容源对内容进行爬网,原因如下。
- 适应服务器停机时间和服务器高峰使用时间段。
- 分别对承载于较慢服务器上的内容和承载于较快服务器上的内容进行爬网。
- 对更频繁地进行更新的内容进行更频繁的爬网。
对内容进行爬网可以显著降低承载该内容的服务器的性能。效果取决于主机服务器是否有足够的资源 (特别是 CPU 和 RAM) 来处理负载。因此,在计划爬网计划时,请考虑下列最佳做法:
- 在承载内容的服务器可用时,并且在对服务器资源要求较低时,为每个内容源计划爬网。
- 交错爬网计划,这样爬网服务器和主机服务器上的负载就随着时间推移进行分发。通过这种方式,如果通过检查爬网日志熟悉了每个内容源的典型爬网持续时间,您就可以优化爬网计划。有关详细信息,请参阅在 SharePoint Server 2013 中查看搜索诊断中的爬网日志。
- 必要时,仅运行完全爬网。有关详细信息,请参阅在 SharePoint Server 2013 中规划爬网和联合中的进行完全爬网的原因。对于需要完全爬网生效的任何管理更改(如创建爬网规则),请在下一次即将进行完全爬网前执行更改,这样就无需进行其他完全爬网。有关详细信息,请参阅在 SharePoint Server 2013 中管理爬网规则。
对用户配置文件进行爬网,然后再对 SharePoint 网站进行爬网
默认情况下,在服务器场中的第一个 Search Service 应用程序中,预配置的内容源“本地 SharePoint 网站”至少包含以下两个开始地址:
- http://Web_application_public_URL,用于对 Web 应用程序中的所有 SharePoint 网站进行爬网
- sps3://My_Site_host_URL,对用户配置文件进行爬网
但是,如果您部署的是“人员搜索”,则建议您为开始地址 sps3://My_Site_host_URL 创建一个单独的内容源,并首先针对该内容源运行爬网。这样做的原因是,完成爬网后,搜索系统会生成一个列表来标准化人员名称。这样,如果人员名称在一个搜索结果集中具有不同格式,则针对该人员的所有结果会显示在单个组(如“结果块”)中。例如,对于搜索查询“Anne Weiler”,所有由 Anne Weiler、A.Weiler 或别名 AnneW 创作的所有文档可显示在标记为“由 Anne Weiler 创作的文档”的结果块中。同样,所有由任何这些标识创作的文档都可显示在精简面板的标题“Anne Weiler”下(如果“作者”是此处的类别之一)。
对用户配置文件进行爬网,然后对 SharePoint 网站进行爬网
- 确认执行此过程的用户帐户是要配置的 Search Service 应用程序的管理员。
- 按在 SharePoint Server 2013 中部署人员搜索中的说明进行操作。作为这些说明的一部分,请执行以下操作:
- 创建仅对用户配置文件(配置文件存储)进行爬网的内容源。可以对该内容源给定一个名称,如 People。在新的内容源的“开始地址”部分中,键入 sps3://My_Site_Host_URL,其中,My_Site_host_URL 是 我的网站 主机的 URL。
- 为刚刚创建的 People 内容源启动爬网。
- 从预配置内容源“本地 SharePoint 网站”中删除开始地址 sps3://My_Site_Host_URL。
- 对 People 内容源的爬网完成后,等待约两个小时。
- 启动对内容源“本地 SharePoint 网站”的首次完全爬网。
使用连续爬网确保搜索结果为最新
“启用连续爬网”是一个爬网计划选项,您可以在添加或编辑“SharePoint 网站”类型的内容源时选择此选项。连续爬网对上次爬网之后添加、更改或删除的内容进行爬网。连续爬网将按预定义的时间间隔启动。默认的时间间隔为 15 分钟,但您可以通过使用 Windows PowerShell 将连续爬网设置为按较短的时间间隔进行。连续爬网的频率很高,因此可确保搜索索引的新鲜度,即使是 SharePoint 内容,也会频繁地更新。此外,如果由于针对特定项目进行多次爬网尝试且返回错误而导致增量爬网或完全爬网延迟,则可通过连续爬网对其他内容进行爬网,并有助于保持索引的新鲜度,这是由于连续爬网不会处理或重试返回错误超过三次的项目。(对于启用了连续爬网的内容源,会每四个小时自动运行一次“清理”增量爬网,以对重复返回错误的所有项目进行重新爬网。)
单个连续爬网包括 Search Service 应用程序中启动了连续爬网的所有内容源。同样,连续爬网时间间隔适用于 Search Service 应用程序中启动了连续爬网的所有内容源。有关详细信息,请参阅在 SharePoint Server 2013 中管理持续爬网。
连续爬网会增加爬网程序和爬网目标上的负载。请确保相应地为此增加的资源消耗进行计划并横向扩展。对于启用连续爬网的每个大的内容源,建议您配置一个或多个前端 Web 服务器作为爬网的专用服务器。有关详细信息,请参阅管理爬网负载 (SharePoint Server 2010)。
由于爬网会消耗资源和带宽,因此在初始部署期间,最好对少量您所了解的相关内容进行爬网,而不是对其中可能有部分不相关内容的大量内容进行爬网。若要限制爬网的内容的数量,可以创建爬网规则,原因如下:
- 通过排除一个或多个 URL 来避免对不相关内容进行爬网。
- 对 URL 上的链接进行爬网,而无需对 URL 本身进行爬网。这对于不包含相关内容但包含指向相关内容的链接的网站非常有用。
默认情况下,爬网程序不会跟进复杂的 URL,这类 URL 中,其他参数后跟问号 (?),例如,http://contoso/page.aspx?x=y。如果启用爬网程序跟进复杂的 URL,将导致爬网程序收集比预期或相应的更多 URL。这将导致爬网程序收集不必要的链接,爬网数据库中会填充冗余链接,并导致索引不必要地增大。
这些措施有助于减少服务器资源的使用和网络通信,并可以增加搜索结果的相关性。在初始部署后,您可以查看查询和爬网日志并在必要的情况下将内容源和爬网规则调整为包括更多内容。有关详细信息,请参阅在 SharePoint Server 2013 中管理爬网规则。
对 SharePoint Web 应用程序的默认区域进行爬网
对 SharePoint Web 应用程序的默认区域进行爬网时,查询处理器将自动映射并返回与执行查询的备用访问映射 (AAM) 对应的搜索结果 URL。这使用户可以轻松地查看和打开搜索结果。
然而,如果对 Web 应用程序的区域而不是默认区域进行爬网,查询处理器将不会映射与执行查询的 AAM 区域对应的的搜索结果 URL。相反,搜索结果 URL 将对应已爬网的非默认区域。出于此原因,用户可能无法随时查看或打开搜索结果。
例如,假定您有一个名为 WebApp1 的 Web 应用程序的以下 AAM:
现在,假设您对默认区域 https://contoso 进行爬网。用户从 https://contoso/searchresults.aspx 执行查询时,WebApp1 中的结果 URL 将对应 https://contoso/,因此格式为 https://contoso/path/result.aspx。
同样,如果查询来自 Extranet 区域,在这种情况下,来自 WebApp1 的结果 https://fabrikam/searchresults.aspx 将对应 https://fabrikam,因此格式为 https://fabrikam/path/result.aspx。
在这两种情况下,由于查询位置和搜索结果 URL 的区域一致性,用户可以很轻松地查看和打开搜索结果,无需更改不同区域的不同安全上下文。
但是,现在假定您对非默认区域(如 Intranet 区域 http://fabrikam)进行爬网。在这种情况下,对于任何区域的查询,来自 WebApp1 的结果 URL 将始终对应已爬网的非默认区域。也就是说,https://contoso/searchresults.aspx、https://fabrikam/searchresults.aspx 或 http://fabrikam/searchresults.aspx 的查询将产生由已爬网非默认区域开头的搜索结果 URL,因此格式为 http://fabrikam/path/result.aspx。这将导致意外的或有问题的行为,例如:
- 当用户尝试打开搜索结果时,系统可能会提示用户没有凭据。例如,Extranet 区域中基于表单的经过身份验证的用户可能没有 Windows 身份验证凭据。
- 来自 WebApp1 的结果将使用 HTTP,但用户可能会搜索 Extranet 区域 https://fabrikam/searchresults.aspx。由于结果将不会使用安全套接字层 (SSL) 加密,这可能会带来安全隐患。
- 因为是在默认区域的公用 URL 上而不是已爬网的 URL 上进行筛选,因此可能不会正确地筛选精简内容。这是由于索引中基于 URL 的属性将对应已爬网的非默认 URL。
降低对 SharePoint 爬网目标进行爬网的影响
您可以执行以下步骤以降低对 SharePoint 爬网目标(即 SharePoint 前端 Web 服务器 )进行爬网的影响:
- 对于小型的 SharePoint 环境,将所有爬网通信流重定向到单个 SharePoint 前端 web 服务器。对于大型环境,将所有爬网通信流重定向到前端 web 服务器的特定组。这将防止爬网程序使用的资源与用于向活动的用户呈现和提供网页和内容的资源相同。
- 限制 Microsoft SQL Server 中的搜索数据库使用率,防止爬网程序在爬网过程中使用共享的 SQL Server 磁盘和处理器资源。
有关详细信息,请参阅管理爬网负载 (SharePoint Server 2010)。
使用爬网程序影响规则限制爬网的效果
若要限制爬网程序影响,您还可以创建爬网程序影响规则,可从 Search_service_application_name:搜索管理页获取。爬网程序影响规则指定爬网程序从开始地址或开始地址范围请求的速率。具体而言,爬网程序影响规则要么一次从 URL 请求特定数量的文档,而不在各请求之间等待,要么一次从 URL 请求一个文档,并在各请求之间等待特定时间。每个爬网程序影响规则都适用于所有爬网组件。
对于您组织中的服务器,可以根据已知服务器性能和容量设置爬网程序影响规则。但这可能不适用于外部网站。因此,您可能请求了太多内容或请求内容太频繁,导致无意中使用了外部服务器上的太多资源。这将导致这些外部服务器的管理员限制对服务器的访问,使您难以对存储库进行爬网或无法爬网。因此,将爬网程序影响规则设置为当您仍高频率对足够多的内容进行爬网时,对外部服务器产生尽可能小的影响,以确保索引的新鲜度可满足您的需求。
使用 Active Directory 组而非单个用户的权限
用户或组对网站执行各种活动的能力由您分配的权限级别决定。如果您单独添加或删除用户的网站权限,或者如果您使用 SharePoint 组指定网站权限,并更改组成员资格,则爬网程序必须执行“仅安全爬网”,用以更新搜索索引中的所有受影响的项目,从而反映更改情况。同样,通过不同用户或 SharePoint 组添加或更新 Web 应用程序策略将触发该策略对所有涵盖的内容的爬网。这将增加爬网负载,并降低搜索结果的新鲜度。因此,若要指定网站权限,最好使用 Active Directory 域服务 (AD DS) 组,因为不需要爬网程序更新搜索索引中受影响的项目。
添加第二个爬网组件来提供容错能力
创建 Search Service 应用程序时,默认搜索拓扑将包括一个爬网组件。爬网组件将检索内容库中的项目,将这些项目下载到承载爬网组件的服务器,将项目和关联的元数据传递给内容处理组件,并将爬网相关的信息添加到关联的爬网数据库。您可以添加第二个爬网组件以提供容错功能。如果一个爬网组件不可用,另一个爬网组件将接管所有爬网操作。对于大多数 SharePoint 服务器场,总共两个爬网组件就足够了。
有关详细信息,请参阅以下 TechNet 文章:
- SharePoint Server 2013 中的搜索概述
- 在 SharePoint Server 2013 中更改默认搜索拓扑
- 在 SharePoint Server 2013 中管理搜索组件
- New-SPEnterpriseSearchCrawlComponent
管理环境资源以改善爬网性能
在爬网组件对内容进行爬网、将内容下载到爬网服务器(托管爬网组件的服务器),并将内容传给内容处理组件后,多个因素会对性能产生负面影响。若要提高爬网性能,可以执行以下操作:
有关详细信息,请参阅以下资源:
确保没有爬网处于活动状态,然后再更改搜索拓扑
建议您确认没有正在进行的爬网,然后再启动对搜索拓扑的更改。否则,拓扑更改将不会顺利进行。
如有必要,可以手动暂停或停止完全爬网或增量爬网,您也可以禁用连续爬网。有关详细信息,请参阅以下文章:
注意: |
暂停爬网的缺点在于,对于爬网组件的引用可保留在搜索管理数据库中的 MSSCrawlComponentsState 表中。如果您希望删除任何爬网组件,这将导致一个问题(因为您希望从服务器场中删除承载这些组件的服务器)。然而,您在停止爬网后,MSSCrawlComponentsState 表中对爬网组件的引用将会被删除。因此,如果您希望删除爬网组件,最好是停止爬网,而不是暂停爬网。 |
若要确认没有正在进行的爬网,在“Search_service_application_name: 管理内容源”页上,确保每个内容源的“状态”字段中的值为“空闲”或“已暂停”。(爬网完成后,或停止爬网后,内容源的“状态”字段中的值将更改为“空闲”。)
从爬网主机上删除爬网组件,然后从服务器场删除主机
如果服务器承载了爬网组件,从服务器场删除该服务器将使搜索系统无法对内容进行爬网。因此,在从服务器场删除爬网主机之前,强烈建议您执行以下操作:
- 确保没有爬网处于活动状态。
有关详细信息,请参阅上一节,确保没有爬网处于活动状态,然后再更改搜索拓扑。 - 删除或重定位该主机上的爬网组件。
有关详细信息,请参阅以下资源:
- 在 SharePoint Server 2013 中管理搜索拓扑
- 在 SharePoint Server 2013 中更改默认搜索拓扑
- 在 SharePoint Server 2013 中管理搜索组件中的删除搜索组件或移动搜索组件
- 在 SharePoint 2013 中从服务器场移除服务器
- SP2010:删除服务器或重新将服务器加入服务器场可中断搜索
更改爬网配置或应用更新后,测试爬网和查询功能
建议您在更改配置或应用更新后,测试服务器的爬网和查询功能。以下过程是进行这种测试的一个简易方法示例。
测试爬网和查询功能
- 确认执行此过程的用户帐户是要配置的 Search Service 应用程序的管理员。
- 创建一个您将仅临时用于此次测试的内容源。
在新内容源中的“开始地址”部分中,在“在下面键入开始地址(一行一个地址):”框中,指定一个包含索引中尚不存在的若干项目的开始地址,例如,文件共享上的若干 TXT 文件。有关详细信息,请参阅在 SharePoint Server 2013 中添加、编辑或删除内容源。 - 启动该内容源的完全爬网。
有关详细信息,请参阅在 SharePoint Server 2013 中启动、暂停、继续或停止爬网。爬网完成后,在“Search_service_application_name: 管理内容源”页上,内容源的“状态”列中的值将为“空闲”。(若要更新“状态”列,请点击“刷新”刷新“管理内容源”页面。) - 爬网完成后,转到搜索中心,并执行搜索查询,以查找这些文件。
如果您的部署没有搜索中心,请参阅在 SharePoint Server 2013 中创建搜索中心网站。 - 完成测试后,删除临时内容源。
将删除由搜索索引中的该内容源指定的项目,因此,完成测试后,这些项目将不会出现在搜索结果中。
使用爬网日志和爬网运行状况报告诊断问题
爬网日志可跟踪有关已爬网内容状态的信息。日志包括内容源、主机、错误、数据库、URL 和历史记录的视图。例如,可以使用此日志确定内容源上一次成功爬网的时间,已爬网内容是否已成功添加到索引,是否由于爬网规则将其排除,或者,是否由于出现错误导致爬网失败。
爬网运行状况报告提供了有关爬网速率、爬网延迟、爬网新鲜度、内容处理、CPU 和内存负载、连续爬网及爬网队列的详细信息。
您可以使用爬网日志和爬网运行状况报告诊断搜索体验问题。通过诊断信息,您可以确定是否有助于调整元素(如内容源、爬网规则、爬网程序影响规则、爬网组件及爬网数据库)。
有关详细信息,请参阅在 SharePoint Server 2013 中查看搜索诊断。