我們最終推動定製的屬性,我們添加到用戶的個人資料到託管屬性。 此外,似乎我們可以在託管屬性上執行通配符搜索,因此我們會執行像「CustomProperty:*,2,*」這樣的人員搜索,以便它將返回其用戶個人資料的定製屬性中編號爲2的所有用戶個人資料
有趣通配符只能在年底開箱即用的屬性,如名字,所以我們不能做這樣的事情姓:哦並期望它會返回John Doe的個人資料 但我們肯定可以做到這一點 - 姓:JOH *和將返回名字以Joh開頭的所有人(其中包括John Doe)
但是它看起來像通配符在開始和結束時都起作用自定義的管理特性(這幫助了大量的我們)
關於如何使用C#返回的搜索結果,我們使用這個 -
private DataTable GetPeople(SPSite spSite, string queryText)
{
var keywordQuery = new KeywordQuery(spSite)
{
QueryText = queryText,
KeywordInclusion = KeywordInclusion.AllKeywords,
SourceId = System.Guid.Parse("b09a7990-05ea-4af9-81ef-edfab16c4e31")
};
keywordQuery.RowLimit = this.MaxProfilesToDisplay;
keywordQuery.SelectProperties.Add("AccountName");
keywordQuery.SelectProperties.Add("PictureURL");
SearchExecutor e = new SearchExecutor();
ResultTableCollection rt = e.ExecuteQuery(keywordQuery);
var tab = rt.Filter("TableType", KnownTableTypes.RelevantResults);
var result = tab.FirstOrDefault();
DataTable DT = result.Table;
return DT;
}
,我們將調用此類似
DataTable dt = GetPeople(SPContext.Current.Site, "CustomProperty:*,2,*");