如何将索引属性添加到网站,以便我可以构建结果源以搜索所有站点中具有该属性的内容

时间:2019-01-30 04:46:27

标签: sharepoint-online sharepoint-search

我想构建一个仅包含一些网站集和子网站的共享点在线搜索结果源。我有超过5000个网站集,因此我不能在结果源中使用命名的URL /网站ID-无法维护。相反,我希望在配置站点后将索引属性添加到站点的属性包中,然后将其映射到托管属性,并在结果源中使用它来过滤搜索结果以仅匹配具有该属性值的站点中找到的内容。菲尔·哈丁(Phil Harding)的文章描述了这种方法:https://platinumdogs.me/2015/02/06/set-a-propertybag-property-as-indexed-queryable-via-search-using-csom-powershell/和Mike Morawski为索引属性编码添加了一些代码-http://www.migee.com/2015/09/14/allowing-property-bag-values-to-be-searched-via-sharepoint-search/我使用了两者的一部分来实现此方法。

方法:

  1. 将键='SiteType',值='MySiteType'添加到Web所有属性
  2. 将具有“ MySiteType”值的索引属性“ SiteType”添加到Web IndexedProperties(vti_indexedpropertykeys)。密钥编码为base64
  3. 手动添加映射到“搜索架构”中“ SiteType”抓取属性的托管属性“ propSiteType”。

我已经通过Powershell + CSOM完成了1和2,并确认添加了站点属性并对其进行了爬网。有托管属性,但是在ResultSource构建器对话框中不可用,并且任何搜索,例如{searchterms} propSiteType:MySiteType或(contentclass:STS_Web或contentclass:STS_Site)propSiteType:MySiteType都不会返回结果。

想法还是其他方法?预先感谢

1 个答案:

答案 0 :(得分:2)

我唯一的想法是索引延迟。我已经看到O365需要花费几天的时间来索引新内容,即使manually requesting a crawl也是如此。如果那是问题,那么现在可能已经解决了。您是否看到相关的搜索结果?

https://www.sharepointnutsandbolts.com/2013/10/waiting-for-search-crawl-in-office-365.html