Я хочу создать источник результатов онлайн-поиска на sharepoint, включающий только некоторые семейства сайтов и дочерние сайты.У меня более 5000 семейств сайтов, поэтому я не могу использовать именованные URL / идентификаторы сайтов в источнике результатов - не поддерживается.Вместо этого я надеюсь добавить индексированное свойство в пакет свойств сайта после его подготовки, затем сопоставить с ним управляемое свойство и использовать его в источнике результатов для фильтрации результатов поиска, чтобы они соответствовали только контенту, найденному на сайтах, которые имеют это значение свойства.В статье Фила Хардинга описан подход: https://platinumdogs.me/2015/02/06/set-a-propertybag-property-as-indexed-queryable-via-search-using-csom-powershell/ и Майк Моравски добавляет некоторый код для кодирования индексированных свойств - http://www.migee.com/2015/09/14/allowing-property-bag-values-to-be-searched-via-sharepoint-search/ Я использовал биты обоих для реализации этого подхода.
Подход:
- Добавить ключ = 'SiteType', значение = 'MySiteType' к веб-свойствам
- Добавить индексированное свойство 'SiteType' со значением 'MySiteType' к веб-сайту IndexedProperties (vti_indexedpropertykeys).Ключ, закодированный в base64
- Добавить управляемое свойство propSiteType, сопоставленное с искомым свойством SiteType, в схеме поиска вручную.
Я сделал 1 и 2 с помощью Powershell + CSOM, ипроверьте, что свойство сайта добавлено и сканировано.Управляемое свойство есть, но оно недоступно в диалоговом окне ResultSource Builder, и любые поисковые запросы, такие как {searchterms} propSiteType: MySiteType или (contentclass: STS_Web ИЛИ contentclass: STS_Site) propSiteType: MySiteType не возвращают результаты.
Идеи или альтернативные подходы?Заранее спасибо