2014-10-09 155 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

您的錯誤是在使用[「本地SharePoint提供程序」]而不是「本地人提供程序」。最好使用SearchProvider類的靜態屬性,而不是硬編碼魔術字符串。 – Alexey 2014-10-17 10:49:27

回答

1
  • 設置類型屬性的人的結果,你需要更新 Source.ProviderId等於SearchProvider .LocalPeopleProviderGuid;