2014-10-09 3 views
1

Я был в состоянии создать пользовательский Результат Источник для поиска SP13 людям нравится это:Поиск SharePoint 2013: установить Результат Тип источника раздел для людей Результаты поиска

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» в разделе «Тип». Могу ли я сделать это программно? Спасибо.

+0

Ваша ошибка была при использовании ["Local SharePoint Provider"] вместо "Local People Provider". И лучше использовать статические свойства класса SearchProvider, чем hardcode magic strings. – Alexey

ответ

1
  • Чтобы установить тип собственности Результаты Люди, вам необходимо обновить Source.ProviderId равным SearchProvider .LocalPeopleProviderGuid;
Смежные вопросы