使用内容搜索 Web 部件中的缓存加快页面加载速度

在 SharePoint 中配置内容搜索 Web 部件 (CSWP) 为配置它包含的查询提供了很大的灵活性。 但是,如果将 Web 部件配置为使用复杂查询,或者如果页面上有多个 CSWPS,则加载页面可能需要更长的时间。 若要加快页面加载速度,可以将 CSWP 配置为缓存属于同一 AD 安全组的用户的搜索结果。 由于在缓存中查找搜索结果的速度比在搜索索引中查找速度更快,因此页面加载速度更快。

将 CSWP 配置为使用缓存后,它将首先在缓存中查找与查询和 AD 安全组匹配的现有搜索结果。 如果在缓存中找不到任何搜索结果,则会在搜索索引中查找。

建议仅在每 15 分钟加载超过 10 个页面的 CSWP 中使用缓存,例如热门主页或类别页,这些页面是导航到更详细目录页的起点。

提示

请参阅在 SharePoint 中配置内容搜索 Web 部件,了解您可以执行的其他操作来加快页面加载速度。

将内容搜索 Web 部件 (CSWP) 配置为使用缓存

  1. 确保你是包含 CSWP 的网站上的 Designers SharePoint 组的成员。

  2. 转到包含 CSWP 的页面。

  3. “设置”中,选择“ 编辑页面”。

  4. 选择要配置的 CSWP。

  5. 在“Web 部件”工具窗格的“属性”部分的“搜索条件”部分,选择“更改查询”。

  6. 转到 “设置” 选项卡。

  7. 在“ 缓存 ”部分中,选择“ 组:除外部用户以外的所有人”,或选择“ 组:” ,然后输入要使用的 AD 安全组的名称。

    注意

    若要测试 CSWP 是否返回预期结果,你必须是所选 AD 安全组的成员。

提示

无法从 CSWP 查找 AD 安全组的名称。 若要查找 AD 安全组,请转到 Azure 经典门户。 有关详细信息,请参阅管理 Microsoft Entra ID 中的组

何时应使用缓存?

在将所有内容搜索 Web 部件 (CSWP) 更改为使用缓存之前,应考虑使用 CSWP 的页面的特征:

  • CSWP 位于哪种类型的页面? 在主页或许多用户在浏览信息时作为起点的页面上的 CSWP 中,缓存非常有效。 类别页上的 CSWPS 是导航到更详细的目录页的起点,也可以从缓存中受益。

  • 页面具有多少个页面加载? 建议仅在每 15 分钟加载超过 10 个页面的页面上的 CSWP 中使用缓存。

  • CSWP 是否配置为向不同的用户显示不同的结果? 如果 CSWP 查询涉及过多的用户组,搜索结果组合可能会重载缓存,并且页面加载时间不会减少,甚至可能会增加。

以下示例显示了一个包含四个 CSWPs 的 Intranet 页面。 页面平均每 15 分钟加载 38 个页面。 这些页面特征表明,如果将某些 CSWPS 配置为使用缓存,页面加载速度更快。

包含四个 CSWPs 的示例 Intranet 主页

让我们看一下各个 CSWPS:

  • CSWP 1 显示一个特色公司新闻故事,在本例中是有关即将进行培训的新闻报道。

  • CSWP 2 显示其他公司新闻报道。

  • CSWP 3 显示部门中的常用文档。

  • CSWP 4 显示你最近一直在处理的文档。

CSWP 1 和 2 中的查询配置为向所有用户显示相同的结果。 这意味着,可以通过将这两个 CSWP 配置为使用缓存来加快页面加载速度。

CSWP 3 和 4 中的查询配置为向不同的用户显示不同的结果

CSWP 3 向人力资源部门工作的人员显示一组结果,向在销售部门工作的人员显示另一组结果。 在大多数情况下,可以通过在此 Web 部件中使用缓存来加快页面加载速度。 但是,如果有许多小型部门,每个部门中只有几名员工,则缓存中存储的搜索结果数可能会使缓存过载,并实际增加页面加载时间。

CSWP 4 显示登录用户最近处理的文档。 不应在此 Web 部件中使用缓存。 由于查询是针对每个用户定制的,因此所有单独的搜索结果都存储在缓存中。 这会重载缓存,并可能会增加页面加载时间。

缓存如何提高网页加载速度?

首先,让我们看看如何在不缓存的情况下在内容搜索 Web 部件 (CSWP) 中显示搜索结果:

  1. 用户转到具有 CSWP 的页面。

  2. CSWP 中的查询将发送到搜索索引。

  3. 搜索在搜索索引中查找结果,并删除分配的 AD 安全组中的用户不允许看到的任何搜索结果。

  4. 搜索结果从搜索索引发送到 CSWP,用户可在 CSWP 中查看结果。

  5. 第二个用户将转到同一页,重复步骤 2 - 4。

    在没有缓存功能的情况下,如何在 CSWP 中显示结果

现在,让我们看一下如何使用缓存在内容搜索 Web 部件 (CSWP) 中显示结果:

  1. 用户转到具有 CSWP 的页面。

  2. 在 CSWP 中分配 AD 安全组,例如 除外部用户以外的所有人。 此示例假定访问页面的用户属于分配的 AD 安全组。

  3. 查询和 CSWP 中分配的 AD 安全组组合在一起,搜索首先在缓存中查找匹配的查询和安全组。 如果在缓存中找不到任何匹配的结果,则会将查询发送到搜索索引。

  4. 搜索在搜索索引中查找结果,并删除分配的 AD 安全组中的用户不允许看到的任何结果。

  5. 搜索结果从搜索索引发送到缓存, (结果 1) 存储。

  6. 搜索结果从缓存提供给 CSWP,用户可在其中看到结果。

  7. 第二个用户将转到同一页面。 第二个用户与第一个用户属于同一 AD 安全组。

  8. 搜索查找缓存中查询和 AD 安全组组合的现有搜索结果。

  9. 搜索结果从缓存提供给 CSWP,用户可在其中看到结果。

    如何使用缓存功能在 CSWP 中显示结果

由于在缓存中查找搜索结果的速度比在搜索索引中查找更快,因此页面加载速度更快。

重要

缓存将在 15 分钟后过期。 缓存过期后,转到页面的第一个用户会重新填充它,因此,对于过期后重新填充缓存的第一个用户来说,页面加载时间可能会更长。

故障排除:新添加的内容未显示在 CSWP 结果中

CSWP (内容搜索 Web 部件) 显示已爬网并添加到搜索索引的内容的搜索结果。 将 CSWP 配置为使用缓存时,它会显示来自缓存的匹配结果,而不是来自搜索索引的结果。 搜索结果(也是空搜索结果)在缓存中存储最多 15 分钟,然后缓存过期。

如果在对内容进行爬网并包含在搜索索引中之前搜索新添加的内容,则缓存将包含查询的 空搜索结果 ,直到缓存过期,并且该内容不会显示在 CSWP 结果中。

如果新添加的内容未显示在 CSWP 中:

  1. 确保已对内容进行爬网并将其添加到搜索索引。 在搜索框中或不使用缓存的 CSWP 中搜索内容,直到找到内容。

  2. 请至少等待 15 分钟,让 CSWP 缓存过期,然后重试。

  3. 如果仍然看不到任何结果,检查你是已分配给 CSWP 的 AD 安全组的成员。 如果你不是 AD 安全组的成员,则不会看到任何搜索结果。

注意

SharePoint 按计划的时间间隔自动对搜索索引进行爬网并添加新内容,但您也可以 手动请求对网站、库或列表进行爬网和重新编制索引