Search by profile

How can I search by profile property? MSDN says it uses ProfileSearchManager, but it does not work. I want search users to be on the MobilePhone property.

SPServiceContext serviceContext = SPServiceContext.GetContext(site); UserProfileManager upm = new UserProfileManager(serviceContext); ProfileSearchManager sp = ProfileSearchManager.GetProfileSearchManager(serviceContext); string[] searchPattern = { "123" }; ProfileBase[] searchResults = sp.Search(searchPattern, ProfileSearchFlags.User); foreach (ProfileBase profile in searchResults) { Console.WriteLine(profile.DisplayName); } 
+5
source share
1 answer
  using (SPSite site = new SPSite(siteUrl)) { using (var qRequest = new KeywordQuery(site) { QueryText = "MobilePhone:*" +"123" , EnableQueryRules = true, EnableSorting = false, SourceId = new Guid("Enter here Result Source Guid"), TrimDuplicates = false }) { //Get properties you want here qRequest.SelectProperties.Add("FirstName"); qRequest.SelectProperties.Add("LastName"); SearchExecutor e = new SearchExecutor(); ResultTableCollection rt = e.ExecuteQuery(qRequest); var tab = rt.Filter("TableType", KnownTableTypes.RelevantResults); var result = tab.FirstOrDefault(); DataTable resultTable = result.Table; } } 
+2
source

Source: https://habr.com/ru/post/1206387/


All Articles