The scenario is simple; what you want is to configure people search and allow that to search using a custom metadata property that is being populated into the user profiles from an external system like a BCS system. I will dedicate several posts for configuring the user profiles service and synchronization from an external source. But for this post I assume that the user profiles synchronization is up and running and that we added an extra profile property for example employee ID from an external system. So here are the steps.

  1. Make sure that the “Managed Metadata Service” is provisioned and running before you perform this procedure.
  2. Once the initial full synchronization is completed we should check that the custom property is populated to the users profiles as expected.
  3. Open the SharePoint central administration web site.
  4. Create a new content source for your user profiles
    clip_image002
    Select your configured search application
    clip_image004
    Click Manage
    clip_image006
    clip_image008
    clip_image010
    Fill in the required fields and mark how we write the URL of the SharePoint site to the my sites host URL with a special sps3 protocol.
    clip_image011
    Create schedules as required
    clip_image012
    Select full crawl check box (you can do that later if you want)
    clip_image013
    Click OK
    clip_image014
  5. Keep refreshing the content sources page until the crawl has finished.
    clip_image016
  6. Create a new metadata property pointing to your custom user profile property.
    Click “Metadata Properties”
    clip_image018
    clip_image019
    clip_image020
    Click “Add Mapping”
    clip_image021
    clip_image022
    clip_image023
    Select “People:EmployeeID” (This is the crawled property and you will never find it until you perform the initial full crawl of the users profiles) and then OK
    clip_image024
    clip_image025
  7. Once this is done and this is a very important step RUN ANOTHER INCREMENTAL CRAWL.
  8. Open your search center that you want the user to use the new metadata property and now we will customize this page to add the new managed property.
    Click the “People” link.
    clip_image027
    Click on site actions and then edit page.
    Open the search box web part properties
    clip_image028
    clip_image029
    clip_image030
    Now in this window add a new line like this:
    <Property Name="EmployeeID" ManagedName="EmployeeID" ProfileURI="urn:schemas-microsoft-com:sharepoint:portal:profile:EmployeeID"/>
    clip_image031
    Click ok twice
    Now when you click on search options you see this view
    clip_image032
    clip_image033
    And if you enter any employee ID in the designated section you get results as following
    clip_image035
    Please note the query format.

So now your users are able to search for a user profile using their HR system employee ID.

Please note one thing if you want to localize the name of the property you will have to change the field name in this line to whatever you want.

<Property Name="EmployeeID" ManagedName="EmployeeID" ProfileURI="urn:schemas-microsoft-com:sharepoint:portal:profile:EmployeeID"/>

Happy SharePointing Smile