SharePoint Server 中爬网的最佳做法

适用于:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

了解 SharePoint Server 中爬网的最佳做法。

搜索系统对内容进行爬网,以构建一个用户可以对其运行搜索查询的搜索索引。 本文包含有关如何最有效地管理爬网的建议。

了解 在 Microsoft 365 中手动请求对 SharePoint 进行爬网和重新编制索引

使用默认内容访问帐户对大部分内容进行爬网

默认内容访问帐户是为 SharePoint Server 搜索服务默认用于爬网的域帐户。 为了简单起见,最好尽可能使用此帐户对内容源指定的内容进行爬网。 若要更改默认内容访问帐户,请参阅 更改用于在 SharePoint Server 中爬网的默认帐户

如果您无法使用默认内容访问帐户对特定 URL 进行爬网(例如,因为安全原因),则可以针对验证爬网程序创建一个爬网规则来指定以下备选方法之一:

  • 不同的内容访问帐户

  • 客户端证书

  • 窗体凭据

  • 用于爬网的 Cookie

  • 匿名访问

有关详细信息,请参阅 在 SharePoint Server 中管理爬网规则

有效使用内容源

内容源是搜索服务应用程序中的一组选项,用于指定以下每个组件:

  • 一个或多个用于爬网的开始地址。

  • 起始部分中的内容类型 (地址,例如 SharePoint Server 网站、文件共享或业务线数据) 。 您可以仅指定一个在内容源中爬网的内容类型。 例如,您可以使用一个内容源对 SharePoint Server 网站进行爬网,并使用另一个内容源对文件共享进行爬网。

  • 完全爬网或增量爬网的爬网计划和爬网优先级,适用于内容源指定的所有内容库。

创建 Search Service 应用程序时,搜索系统将自动创建并配置一个内容源,称为"本地 SharePoint 网站"。 此预配置的内容源用于对用户配置文件进行爬网,以及爬网与 搜索服务 应用程序关联的 Web 应用程序中的所有 SharePoint Server 网站。 还可以使用此内容源对其他 SharePoint Server 场(包括 SharePoint Server 2007 场、SharePoint Server 2010 场、SharePoint Server 2013 场或其他 SharePoint Server 场)中的内容进行爬网。

如果要执行以下任一任务,请创建额外的内容源:

  • 对其他内容类型进行爬网

  • 限制或增加对其进行爬网的内容量

  • 对某些内容进行爬网的频率更高或更低

  • (此要求适用于完全爬网和增量爬网,但不适用于连续爬网)

  • 按不同的计划对某些内容进行爬网, (此要求适用于完全爬网和增量爬网,但不适用于连续爬网)

然而,若要尽可能简化管理,建议您限制所创建和使用的内容源的数量。

使用内容源计划爬网

您可以编辑预配置的内容源“本地 SharePoint 网站”以指定爬网计划;不会默认指定一个爬网计划。 对于任何内容源,您可以手动启动爬网,但建议您计划增量爬网或启用连续爬网以确保可以定期对内容进行爬网。

考虑根据不同的计划使用不同的内容源对内容进行爬网,原因如下。

  • 适应服务器停机时间和服务器高峰使用时间段。

  • 分别对承载于较慢服务器上的内容和承载于较快服务器上的内容进行爬网。

  • 对更频繁地进行更新的内容进行更频繁的爬网。

对内容进行爬网可以显著降低承载该内容的服务器的性能。 效果取决于主机服务器是否有足够的资源 (特别是 CPU 和 RAM) 来处理负载。 因此,在计划爬网计划时,请考虑下列最佳做法:

  • 在承载内容的服务器可用时,并且在对服务器资源要求较低时,为每个内容源计划爬网。

  • 交错爬网计划,这样爬网服务器和主机服务器上的负载就随着时间推移进行分发。 通过这种方式,如果通过检查爬网日志熟悉了每个内容源的典型爬网持续时间,您就可以优化爬网计划。 有关详细信息,请参阅在 SharePoint Server 中查看搜索诊断中的爬网日志

  • 必要时,仅运行完全爬网。 有关详细信息,请参阅在 SharePoint Server 中规划爬网和联合执行完全爬网的原因。 对于需要完全爬网才能生效的任何管理更改(例如创建爬网规则),请在下一次完全爬网前不久执行更改,以便不需要进行额外的完全爬网。 有关详细信息,请参阅 在 SharePoint Server 中管理爬网规则

在对 SharePoint Server 网站进行爬网之前对用户配置文件进行爬网

默认情况下,在服务器场中的第一个 Search Service 应用程序中,预配置的内容源"本地 SharePoint 网站"至少包含以下两个开始地址:

  • https://webAppUrl,用于爬网为现有 Web 应用程序指定的默认区域 URL ()

  • sps3s://myWebAppUrl,用于对用户配置文件进行爬网

但是,如果要部署“人员搜索”,我们建议为起始地址sps3s://myWebAppUrl创建单独的内容源,并首先对该内容源运行爬网。 爬网执行的原因是,完成爬网后,搜索系统将生成一个列表来标准化人员的姓名。 这样,如果人员名称在一个搜索结果集中具有不同格式,则针对该人员的所有结果会显示在单个组(如“结果块”)中。 例如,对于搜索查询“Anne Weiler”,由 Anne Weiler 或 A.Weiler 或别名 AnneW 创作的所有文档都可以显示在标记为“Anne Weiler 文档”的结果块中。 同样,所有由任何这些标识创作的文档都可显示在精简面板的标题“Anne Weiler”下(如果“作者”是此处的类别之一)。

对用户配置文件进行爬网,然后对 SharePoint Server 网站进行爬网

  1. 确认执行此过程的用户帐户是要配置的 Search Service 应用程序的管理员。

  2. 按照在 SharePoint Server 中部署人员搜索中的说明进行操作。 作为这些说明的一部分,你将执行以下任务:

  • Create a content source that is only for crawling user profiles (the profile store). You might give that content source a name such as People. 在新内容源的“ 开始地址” 部分中,键入 sps3s:// myWebAppUrl,其中 myWebAppUrl 是“我的网站”主机的 URL。

  • 开始对创建的人员内容源进行爬网。

  • 从预配置的内容源本地 SharePoint 网站中删除起始地址sps3s://myWebAppUrl

  1. 对 People 内容源的爬网完成后,等待约两个小时。

  2. 启动对内容源"本地 SharePoint 网站"的首次完全爬网。

使用连续爬网确保搜索结果为最新

启用连续爬网 是一种爬网计划选项,您可以在添加或编辑 SharePoint Sites 类型的内容源时选择该选项。 连续爬网对自上次爬网以来添加、更改或删除的内容进行爬网。 连续爬网从预定义的时间间隔开始。 默认间隔是每 15 分钟一次,但可以使用 Microsoft PowerShell 将连续爬网设置为以较短的间隔进行。 由于连续爬网经常发生,因此它们有助于确保搜索索引的新鲜度,即使对于经常更新的 SharePoint Server 内容也是如此。 此外,当增量爬网或完全爬网因多次爬网尝试而延迟时,这些尝试返回特定项的错误,连续爬网可能会对其他内容进行爬网,并有助于索引的新鲜度,因为连续爬网不会处理或重试重复返回错误的项。 在“清理”增量爬网期间重试此类错误,该爬网每四小时自动针对启用了连续爬网的内容源运行一次。 在增量爬网期间继续返回错误的项将在将来的增量爬网中重试,但在错误解决之前,连续爬网不会选取这些项。

单个连续爬网包括 Search Service 应用程序中启动了连续爬网的所有内容源。 同样,连续爬网时间间隔适用于 Search Service 应用程序中启动了连续爬网的所有内容源。 有关详细信息,请参阅Manage continuous crawls in SharePoint Server

连续爬网会增加爬网程序和爬网目标上的负载。 请务必为此增加的资源消耗进行相应的规划和扩展。 对于每个启用连续爬网的大型内容源,我们建议配置一个或多个前端 Web 服务器作为爬网的专用目标。 有关详细信息,请参阅管理爬网负载 (SharePoint Server 2010)

使用爬网规则排除已爬网的不相关的内容

由于爬网会消耗资源和带宽,因此在初始部署期间,最好对少量您所了解的相关内容进行爬网,而不是对其中可能有部分不相关内容的大量内容进行爬网。 若要限制爬网的内容的数量,可以创建爬网规则,原因如下:

  • 通过排除一个或多个 URL 来避免对不相关内容进行爬网。

  • 对 URL 上的链接进行爬网,而无需对 URL 本身进行爬网。 对于不包含相关内容但具有指向相关内容的链接的网站,此安排非常有用。

默认情况下,爬网程序不会遵循复杂 URL,这些 URL 包含问号后跟其他参数,例如, http://contoso/page.aspx?x=y. 如果使爬网程序能够关注复杂的 URL,这种排列方式可能会导致爬网程序收集的 URL 比预期或适当更多。 这种过度同化可能会导致爬网程序收集不必要的链接,使用冗余链接填充爬网数据库,并导致索引很大。

这些措施有助于减少服务器资源的使用和网络通信,并可以增加搜索结果的相关性。 在初始部署后,您可以查看查询和爬网日志并在必要的情况下将内容源和爬网规则调整为包括更多内容。 有关详细信息,请参阅 在 SharePoint Server 中管理爬网规则

对 SharePoint Server Web 应用程序的默认区域进行爬网

对 SharePoint Server Web 应用程序的默认区域进行爬网时,查询处理器会自动映射并返回搜索结果 URL,以便它们相对于执行查询的 AAM) 区域的备用访问映射 (。 此设置使用户能够轻松查看和打开搜索结果。

然而,如果对 Web 应用程序的区域而不是默认区域进行爬网,查询处理器将不会映射与执行查询的 AAM 区域对应的的搜索结果 URL。 相反,搜索结果 URL 将相对于已爬网的非默认区域。 由于此设置,用户可能无法轻松查看或打开搜索结果。

例如,假定您有一个名为 WebApp1 的 Web 应用程序的以下 AAM:

默认值 公用 URL 身份验证提供程序
默认值 https://contoso Windows 身份验证:NTLM
Extranet https://fabrikam 基于表单的身份验证
Intranet http://fabrikam Windows 身份验证:NTLM

现在,假设您对默认区域 https://contoso 进行爬网。 当用户从 https://contoso/searchresults.aspx执行查询时,来自 WebApp1 的结果的 URL 将全部相对于 https://contoso,因此将采用 的形式 https://contoso/ _path_/ _result_.aspx

同样,当查询源自 Extranet 区域时(在本例中, https://fabrikam/searchresults.aspx—results 来自 WebApp1)将全部相对于 https://fabrikam,因此将采用 的形式 https://fabrikam/ _path_/ _result_.aspx

在这两种情况下,由于查询位置和搜索结果 URL 的区域一致性,用户可以很轻松地查看和打开搜索结果,无需更改不同区域的不同安全上下文。

但是,现在假定您对非默认区域(如 Intranet 区域 http://fabrikam)进行爬网。 在这种情况下,对于任何区域的查询,来自 WebApp1 的结果 URL 将始终对应已爬网的非默认区域。 也就是说,来自 https://contoso/searchresults.aspxhttps://fabrikam/searchresults.aspxhttp://fabrikam/searchresults.aspx 的查询将生成以已爬网的非默认区域开头的搜索结果 URL,因此将采用 http://fabrikam/ _path_/ _result_.aspx 格式。 此设置可能会导致意外或有问题的行为,例如:

  • 当用户尝试打开搜索结果时,系统可能会提示用户没有凭据。 例如,Extranet 区域中基于表单的经过身份验证的用户可能没有 Windows 身份验证凭据。

  • 来自 WebApp1 的结果将使用 HTTP,但用户可能会搜索 Extranet 区域 https://fabrikam/searchresults.aspx。 用户的此搜索操作可能具有安全隐患,因为结果不会使用安全套接字层 (SSL) 加密。

  • 因为是在默认区域的公用 URL 上而不是已爬网的 URL 上进行筛选,因此可能不会正确地筛选精简内容。 之所以筛选不正确,是因为索引中基于 URL 的属性将相对于已爬网的非默认 URL。

降低爬网对 SharePoint Server 爬网目标的影响

通过执行以下任务,可以降低爬网对 SharePoint Server 爬网目标的影响, (即 SharePoint Server 前端 Web 服务器) :

  • 对于小型 SharePoint Server 环境,将所有爬网流量重定向到单个 SharePoint Server 前端 Web 服务器。 对于大型环境,将所有爬网通信流重定向到前端 web 服务器的特定组。 这种爬网重定向模式可防止爬网程序使用用于呈现网页和内容并将其呈现给活动用户的资源。

  • 限制 Microsoft SQL Server 中的搜索数据库使用率,防止爬网程序在爬网过程中使用共享的 SQL Server 磁盘和处理器资源。

有关详细信息,请参阅管理爬网负载 (SharePoint Server 2010)

使用爬网程序影响规则限制爬网的效果

若要限制爬网程序影响,您还可以创建爬网程序影响规则,可从 Search_service_application_name:搜索管理页获取。 爬网程序影响规则指定爬网程序从开始地址或开始地址范围请求的速率。 具体而言,爬网程序影响规则要么一次从 URL 请求特定数量的文档,而不在各请求之间等待,要么一次从 URL 请求一个文档,并在各请求之间等待特定时间。 每个爬网程序影响规则都适用于所有爬网组件。

对于您组织中的服务器,可以根据已知服务器性能和容量设置爬网程序影响规则。 但是,外部站点可能无法使用此设置。 因此,您可能请求了太多内容或请求内容太频繁,导致无意中使用了外部服务器上的太多资源。 这种高内容使用量可能会导致这些外部服务器的管理员限制服务器访问,使你难以或不可能对这些存储库进行爬网。 因此,请将爬网程序影响规则设置为对外部服务器的影响尽可能小,同时仍对足够频繁的内容进行爬网,以确保索引的新鲜度满足你的要求。

使用 Active Directory 组而非单个用户的权限

用户或组对网站执行各种活动的能力由您分配的权限级别决定。 如果您单独添加或删除用户以获取网站权限,或者如果您使用 SharePoint Server 组指定网站权限,并且您更改了组的成员身份,则爬网程序必须执行“仅安全爬网”,这将更新搜索索引中的所有受影响的项目以反映更改。 同样,使用不同的用户或 SharePoint Server 组添加或更新 Web 应用程序策略将触发对该策略涵盖的所有内容的爬网。 这将增加爬网负载,并降低搜索结果的新鲜度。 因此,若要指定网站权限,最好使用 Active Directory 域服务 (AD DS) 组,因为这些组不需要爬网程序来更新搜索索引中受影响的项。

添加第二个爬网组件来提供容错能力

创建 Search Service 应用程序时,默认搜索拓扑将包括一个爬网组件。 爬网组件将检索内容库中的项目,将这些项目下载到承载爬网组件的服务器,将项目和关联的元数据传递给内容处理组件,并将爬网相关的信息添加到关联的爬网数据库。 您可以添加第二个爬网组件以提供容错功能。 如果一个爬网组件不可用,另一个爬网组件将接管所有爬网操作。 对于大多数 SharePoint Server 场,总共两个爬网组件就足够了。

有关详细信息,请参阅以下文章:

管理环境资源以改善爬网性能

在爬网组件对内容进行爬网、将内容下载到爬网服务器(托管爬网组件的服务器),并将内容传给内容处理组件后,多个因素会对性能产生负面影响。 若要提高爬网性能,可以执行以下任务:

解决潜在的性能瓶颈问题 实施此解决方案
从已爬网服务器进行的响应时间较慢 提供更多的 CPU 和 RAM 以及速度更快的磁盘 I/O
低网络带宽 在每个爬网服务器上安装 1 或 2 个每秒一千兆位网络适配器
内容处理 为每个内容处理组件提供更多的内容处理组件和更多的 CPU 资源
索引组件处理速度较慢 为承载索引组件的服务器添加 I/O 资源

有关详细信息,请参阅以下资源:

确保没有爬网处于活动状态,然后再更改搜索拓扑

建议您确认没有正在进行的爬网,然后再启动对搜索拓扑的更改。 否则,拓扑更改将不会顺利进行。

如有必要,可以手动暂停或停止完全爬网或增量爬网,您也可以禁用连续爬网。 有关详细信息,请参阅以下文章:

注意

暂停爬网的缺点是,对爬网组件的引用可以保留在 MSSCrawlComponentsState 搜索管理数据库的表中。 如果您想删除任何爬网组件(例如,因为您想从服务器场中删除托管这些组件的服务器),这可能会导致问题。 但是,停止爬网时,将删除对表中爬网组件的 MSSCrawlComponentsState 引用。 因此,如果您想删除爬网组件,最好停止爬网,而不是暂停爬网。

若要确认未进行爬网,请在 _Search_service_application_name_: Manage Content Sources 页面上确保每个内容源的 “状态” 字段中的值是 “空闲” 或“ 已暂停”。 (When a crawl is completed, or when you stop a crawl, the value in the Status field for the content source will change to Idle.)

从爬网主机上删除爬网组件,然后从服务器场删除主机

如果服务器承载了爬网组件,从服务器场删除该服务器将使搜索系统无法对内容进行爬网。 因此,在从服务器场中删除爬网主机之前,强烈建议执行以下任务:

  1. 确保没有爬网处于活动状态。

    有关详细信息,请参阅上一节,确保没有爬网处于活动状态,然后再更改搜索拓扑

  2. 删除或重定位该主机上的爬网组件。

有关详细信息,请参阅以下资源:

更改爬网配置或应用更新后,测试爬网和查询功能

建议您在更改配置或应用更新后,测试服务器的爬网和查询功能。 以下过程是进行这种测试的一个简易方法示例。

测试爬网和查询功能

  1. 确认执行此过程的用户帐户是要配置的 Search Service 应用程序的管理员。

  2. 创建一个您将仅临时用于此次测试的内容源。

    In the new content source, in the Start Addresses section, in the Type start addresses below (one per line) box, specify a start address that contains several items that are not already in the index — for example, several TXT files that are on a file share. 有关详细信息,请参阅 在 SharePoint Server 中添加、编辑或删除内容源

  3. 启动该内容源的完全爬网。

    有关详细信息,请参阅 Start, pause, resume, or stop a crawl in SharePoint Server。 爬网完成后,在 _Search_service_application_name_: Manage Content Sources 页面上,内容源的 “状态” 列中的值将为 “空闲”。 (To update the Status column, refresh the Manage Content Sources page by clicking Refresh.)

  4. 爬网完成后,转到搜索中心,并执行搜索查询,以查找这些文件。

    如果部署尚没有搜索中心,请参阅 在 SharePoint Server 中创建搜索中心网站

  5. 完成测试后,删除临时内容源。

    此操作将从搜索索引中删除由该内容源指定的项,以便在完成测试后它们不会显示在搜索结果中。

使用爬网日志和爬网运行状况报告诊断问题

爬网日志可跟踪有关已爬网内容状态的信息。 日志包括内容源、主机、错误、数据库、URL 和历史记录的视图。 例如,可以使用此日志确定内容源上一次成功爬网的时间,已爬网内容是否已成功添加到索引,是否由于爬网规则将其排除,或者,是否由于出现错误导致爬网失败。

爬网运行状况报告提供了有关爬网速率、爬网延迟、爬网新鲜度、内容处理、CPU 和内存负载、连续爬网及爬网队列的详细信息。

您可以使用爬网日志和爬网运行状况报告诊断搜索体验问题。 通过诊断信息,您可以确定是否有助于调整元素(如内容源、爬网规则、爬网程序影响规则、爬网组件及爬网数据库)。

有关详细信息,请参阅 在 SharePoint Server 中查看搜索诊断