按配置文件属性搜索用户

本文关键字:用户 搜索 置文件属性 | 更新日期: 2023-09-27 18:29:34

如何通过配置文件属性进行搜索?MSDN说使用ProfileSearchManager,但它不起作用。我想通过MobilePhone属性搜索用户。

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);
}

按配置文件属性搜索用户

 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;
                    }
}