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