如何将索引属性添加到网站这样我就可以建立一个结果源,在所有网站上搜索具有此属性的内容



我想建立一个只包括一些网站集和子网站的共享点在线搜索结果源。我有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. 将Key='SiteType',Value='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:StSite)propSiteType\MySiteType)都不会返回结果。

想法还是替代方法?提前感谢

我唯一的想法是索引延迟。我看到O365需要几天的时间来索引新内容,甚至在手动请求爬网时也是如此。如果这就是问题所在,那么现在可能已经解决了。你看到相关的搜索结果了吗?

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

相关内容