Поиск в SharePoint 2013: в разделе «Тип источника результатов» выберите «Результаты поиска людей».

Мне удалось создать собственный источник результатов для поиска людей с пакетом обновления 13 следующим образом:

    var fedManager = new FederationManager(application);
    var owner = new SearchObjectOwner(SearchObjectLevel.SPSite, site.RootWeb);
    var peopleSource = fedManager.GetSourceByName(Consts.ResultSources.PeopleSource, owner);
    QueryTransformProperties queryProperties = new QueryTransformProperties();
    SortCollection sortCollection = new SortCollection();
    sortCollection.Add("PreferredName", SortDirection.Ascending);
    queryProperties["SortList"] = sortCollection;
    var currentResultSource = fedManager.CreateSource(owner);
    currentResultSource.Name = sourceName;
    currentResultSource.ProviderId = fedManager.ListProviders()["Local SharePoint Provider"].Id;
    currentResultSource.CreateQueryTransform(queryProperties, "{?{searchTerms} ContentClass=urn:content-class:SPSPeople}");
    currentResultSource.Commit();

Это прекрасно работает, но мне все еще нужно вручную установить «Результаты поиска людей» вместо «Результаты поиска SharePoint» по умолчанию в разделе «Тип». Можно ли это сделать программно? Спасибо.


person SadPanda    schedule 09.10.2014    source источник
comment
Ваша ошибка заключалась в использовании [локального поставщика SharePoint] вместо локального поставщика людей. И лучше использовать статические свойства класса SearchProvider, чем жестко кодировать магические строки.   -  person Alexey    schedule 17.10.2014


Ответы (1)


  • Чтобы задать для свойства Type значение People Results, необходимо обновить Source.ProviderId, чтобы он был равен SearchProvider.LocalPeopleProviderGuid;
person Alexey    schedule 17.10.2014