2019年十月15日星期二

快速提示-在SharePoint集线器网站下的网站之间进行搜索

SharePoint Hub网站是在Office 365上构建现代数字工作场所的重要方面。它们提供了一种将网站彼此关联的方法,并且由于现代SharePoint Intranet是从同级网站集(即同级网站)的平面列表中构建的,因此这种机制有助于强加逻辑结构和连贯的用户体验。当然,这种模式的想法非常适合组织变更,因为可以轻松地更新站点和中心之间的关联-如果有必要进行重组,那么将站点更新为一个新的中心就很简单了(不能说早期SharePoint模型中大量使用的子网站模型)。

提醒一下,中心站点提供以下内容:

  • 共享导航
  • 共享品牌 
  • 范围搜索(即能够搜索与中心相关联的所有网站的功能)
  • 集线器的“树顶”目的地

搜索和中心站点

在搜索和中心站点方面,您可能会对几种情况感兴趣。每个人最喜欢的SharePoint技术搜索人员 米卡尔·斯文森 (现在是Microsoft搜索团队的一部分)在以下位置提供了一些有用的示例 使用中心站点和搜索API,包括如何使用搜索列出您所有的中心站点,包括如何过滤以仅返回那些至少具有一个关联站点的站点。

但是,没有提到的一件事是您可以对 与中心相关的所有网站中的项目。例如,如果我有一组位于项目中心下的项目站点,也许我想显示搜索结果(或提供自定义搜索页面),以将结果限制为该项目站点“结构”内的页面和文档。

之所以可行,是因为Office 365在这里做了一些有用的事情,因为被索引的每段内容都选择一个标签来指示与之相关的集线器-换句话说,这将传播到SharePoint中的项目级别。为此,使用了托管属性'DepartmentId'-它包含父中心站点的ID。

这显示在下面的搜索查询工具中:

考虑到这一点很有意义,因为当您使用集线器中的搜索栏时,Microsoft会提供跨集线器所有站点的搜索:


...而DepartmentId托管属性是此处使用的机制。

样本搜索查询

下面是一些有关如何使用它的示例(一旦您知道要对范围进行搜索的中心的ID)。注意:在这些示例中,指定的GUID是我要使用的租户中的集线器站点的站点ID。您需要在此处为​​您的方案添加适当的值:

向我显示此中心下任何站点的所有页面或文档:

IsDocument:True 和 (部门编号:{545621ea-2334-45c2-903b-3b9b93be38ee}或部门编号:545621ea-2334-45c2-903b-3b9b93be38ee)

 向我显示此中心下任何站点的新闻:

IsDocument:True 和 升级状态:2 和 (部门编号:{545621ea-2334-45c2-903b-3b9b93be38ee} 或DepartmentId:545621ea-2334-45c2-903b-3b9b93be38ee)

似乎值有时可以包含花括号,有时可能不包含括号(考虑到Microsoft本身如何使用此属性进行搜索)-因此,提供上述查询中所示的两种格式可能更安全。

Microsoft在中心搜索中使用的搜索查询

让我们仔细看看Microsoft在其用于跨中心搜索的本机功能中使用的搜索词/条款。浏览浏览器的开发工具可以看到如下所示的查询(此处显示了我的开发环境中的URL和ID)。

完整查询(“全部”标签):

QueryModification:“(营销) (-ContentClass:ExternalLink 和 -FileExtension:vtt 和 -标题:OneNote_DeletedPages和-标题:OneNote_RecycleBin和 -SecondaryFileExtension:onetoc2 和 -ContentClass:STS_List_544 和 -ContentClass:STS_ListItem_544 和 -WebTemplate:SPSPERS 并不是 (ContentClass:STS_Site 和 SiteTemplateId:21)而不是 (ContentClass:STS_Site 和 SiteTemplateId:22)而不是 (ContentClass:STS_List_DocumentLibrary和SiteTemplateId:21)并且不是 (ContentClass:STS_List_DocumentLibrary 和 作者:“系统帐户”) 并不是 IndexDocId = 17592721738413)AND NOT Path:"//chrisobriensp-my.sharepoint.com/personal/cob_chrisobrien_com/" 并不是 Path:"//chrisobriensp-my.sharepoint-df.com/personal/cob_chrisobrien_com/" 和 (部门编号:{545621ea-2334-45c2-903b-3b9b93be38ee} 或DepartmentId:545621ea-2334-45c2-903b-3b9b93be38ee) -ContentClass = urn:content-class:SPSPeople“

 完整查询(“文件”标签):

QueryModification: "(marketing) (部门编号:{545621ea-2334-45c2-903b-3b9b93be38ee}或 部门编号:545621ea-2334-45c2-903b-3b9b93be38ee)和(不 (标题:OneNote_DeletedPages或标题:OneNote_RecycleBin)且不是 SecondaryFileExtension:onetoc2,而不是FileExtension:vtt,而不是 ContentClass:ExternalLink 并不是 (ContentClass:STS_List_DocumentLibrary 和 SiteTemplateId:21)AND NOT(((filetype:aspx或filetype:htm或 filetype:html OR filetype:mhtml))和isDocument:1 OR ((ContentTypeId:0x010100F3754F12A9B6490D9622A01FE9D8F012或 ContentTypeId:0x0120D520A808 *)或(SecondaryFileExtension:wmv或 SecondaryFileExtension:avi或SecondaryFileExtension:mpg或 SecondaryFileExtension:asf或SecondaryFileExtension:mp4或 SecondaryFileExtension:ogg或SecondaryFileExtension:ogv或SecondaryFileExtension:webm 或SecondaryFileExtension:mov))或(FileType:ai或FileType:bmp或 FileType:dib或FileType:eps或FileType:gif或FileType:ico或 FileType:jpeg或FileType:jpg或FileType:odg或FileType:png或 FileType:rle或FileType:svg或FileType:tiff或FileType:webp或 FileType:wmf或FileType:wpd)或(ContentTypeId:0x012000 *))和非 (ContentTypeId:0x0101009D1CB255DA76424F860D91F20E6C4118 *和 PromotedState:2)且不 Path:"//chrisobriensp-my.sharepoint.com/personal/cob_chrisobrien_com/" 并不是 Path:"//chrisobriensp-my.sharepoint-df.com/personal/cob_chrisobrien_com/" -ContentClass = urn:content-class:SPSPeople“

如您所见,要将结果过滤为有用的结果,需要进行大量排除!

概要

集线器网站在Office 365 / SharePoint Online中提供了一种有用的结构,并且在构建解决方案时,了解如何在集线器中的所有网站之间进行搜索可能是一种有价值的技术。关键是要利用Office 365将父中心站点ID放入搜索索引中每个项目的“ DepartmentId”托管属性中这一事实。知道了这一点,您可以围绕中心站点构建各种定制解决方案!