2

我想构建一个仅包含一些网站集和子网站的 sharepoint 在线搜索结果源。我有超过 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 OR contentclass:STS_Site) propSiteType:MySiteType 都不会返回结果。

想法或替代方法?提前致谢

4

1 回答 1

2

我唯一的想法是索引延迟。我已经看到 O365 需要数天时间来索引新内容,即使手动请求抓取也是如此。如果是这个问题,现在可能已经解决了。您是否看到相关的搜索结果?

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

于 2019-02-05T17:57:44.420 回答