使用 SharePoint 框架扩展修改 Microsoft 搜索体验

SharePoint 框架 v1.10 版本引入了搜索查询扩展。 这些是SHAREPOINT 框架 (SPFx) 扩展,可用于修改使用搜索体验执行的搜索查询。

注意

此功能目前为开发人员预览版功能。 若要使用开发人员预览版中的功能,请确保使用 --plusbeta 包的版本。 有关详细信息,请参阅:试用SharePoint 框架预览功能

重要

即使认为此扩展在 SharePoint 框架 v1.10 版本中可用,但 SharePoint Online 不支持此扩展。

查询扩展充当普通SharePoint 框架扩展,但在执行搜索查询之前将调用它,以便可以修改查询。 在 预览期间,查询扩展具有以下特征:

  • 查询扩展仅适用于 SharePoint 上下文
  • 需要在网站或网站集范围内显式启用查询扩展
  • 仅当网站集关联以使用自定义搜索结果页时,查询扩展才起作用
  • 自定义搜索结果页可以使用新的 HeaderlessSearchResults 页面布局来减少标头内容
  • 仅作为自定义搜索结果页关联的页面支持 HeaderlessSearchResults 页面布局
  • 可以使用开源新式搜索体验解决方案提供 新式搜索体验

开发流程

只需使用 SharePoint 框架 v1.10 或更高版本包即可开始开发查询扩展。 由于此功能处于预览状态,因此需要使用开关执行 Yeoman 生成器, --plusbeta 如下所示。

yo @microsoft/sharepoint --plusbeta

可以在扩展选择下看到名为 “搜索查询修饰符 ”的新选项,为查询扩展组件搭建基架。

将查询扩展关联到网站

在站点上安装包含扩展的解决方案时,默认情况下,查询扩展在网站集上关联。 使用自动打包为解决方案包的一部分的功能框架定义会自动发生这种情况。 从技术上讲,此关联是使用 UserCustomAction 集合作为 ClientSideExtension.SearchQueryModifier 属性完成的 Location

使用 搜索查询修饰符创建新解决方案时,将包含以下 elements.xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <CustomAction
      Title="QueryModifyer"
      Location="ClientSideExtension.SearchQueryModifier"
      ClientSideComponentId="801f82d5-1a21-4b2c-94b6-f13f6672142c"
      ClientSideComponentProperties="{&quot;testMessage&quot;:&quot;Test message&quot;}">
  </CustomAction>
</Elements>

从技术上讲,还可以使用租户范围的SharePoint 框架扩展部署来自动将扩展关联到租户中的多个网站集。

扩展的部署

默认情况下,对于 搜索查询修饰符 来说,部署是一个两步过程,至少在预览期间是:

  1. 将解决方案部署到 SharePoint 应用程序目录
  2. 将解决方案安装到要在其中使用扩展的网站集
  3. 创建自定义搜索结果页并将其配置为在网站集中使用

可以通过单击“ 搜索设置 ”,然后启用自定义搜索体验选项,从网站设置为网站集配置自定义搜索结果页。

Pic