The following code sample shows how to retrieve the user profile property, ex Accountname using the KeywordQuery Search 

We are passing a custom property (CustomID) as an input to the KeywordQuery Search API, which in turn will fetch the Account name for the user.

string strAccountName = string.Empty;  
                     SPSite currentSite = new SPSite(SPContext.Current.Site.ID);
                     KeywordQuery peopleQuery = new KeywordQuery(currentSite);
                     peopleQuery.ResultsProvider = SearchProvider.SharepointSearch;
                     peopleQuery.RowLimit = 2;
                     peopleQuery.HiddenConstraints = "scope:" + "\"People\"";
                     peopleQuery.ResultTypes = ResultType.RelevantResults;
                     peopleQuery.QueryText = "CustomId:" + strCustomId;  //where CustomId will the managed property and strCustimId will be the value of the search
                     peopleQuery.SelectProperties.Add("CustomID");
                     peopleQuery.SelectProperties.Add("AccountName");
                     ResultTableCollection resultCollection = peopleQuery.Execute();
                     if (resultCollection.Exists(ResultType.RelevantResults))
                     {
                         ResultTable result = resultCollection[ResultType.RelevantResults];
                         DataTable tblResult = new DataTable();
                         tblResult.TableName = "CustomIdMatch";
                         tblResult.Load(result, LoadOption.OverwriteChanges);
                         if (tblResult.Rows.Count > 0)
                         {
                             strAccountName = Convert.ToString(tblResult.Rows[0]["AccountName"]);
                         }
                    }