Configuring Phonetic/Nickname Search in SharePoint 2010

One of the new enterprise search feature added to SharePoint 2010 is the ability to search people by their ‘nicknames’. For example: You could search ‘aron’ for ‘aaron’ or ‘jon’ for ‘john’. We geeks call this Phonetic search

Below is a screen shot of the nickname search:

How does this work?

This is an enterprise search feature, meaning you should have SharePoint Standard (or SharePoint Enterprise) installed. It works in conjunction with the Microsoft Speech Server platform. This is one of the pre-requisite for SharePoint 2010. The pre-requisites installer installs the speech server for English US by default.

It basically has a list of ‘names’ and their associated ‘nicknames’ which is fed to the SharePoint 2010 Search to index. Once indexed, the search can then yield results for a nickname.

Configuring Phonetic Search

SharePoint 2010 already has this configured for you, but only for English US (en-US) locale. This means that if you are not using English US as your locale, you will not get any results for ‘nickname’ search.

To check your current phrases (names and nicknames) you can use the following PowerShell cmdlet – Get-SPEnterpriseSearchLanguageResourcePhrase – This will display everything including QuerySuggestionBlockList, SpellingSuggestionBlockList etc.,

Below is how you can use the cmdlet to display all language resources:

Default Phrases

The catch here is that if your locale is not en-US or if your browser locale is not set to en-US, the phonetic search will not work. This is because search does not have any nicknames registered for your locale (and/or language).

You can find your browser locale (in IE) by navigating to Tools –> Options and clicking on Languages button under Appearance:

Configuring Phonetic Search for your different English Locale (like, en-NZ/en-AU)

To make phonetic search work for your locale, you need to register your phrases for your locale.

One good place to start would be to extract the phrases from languageresources.txt file, corresponding to English language and register for your locale.

Open the languageresources.txt in Excel

Accept as Tab delimited file

Select the Column D

Navigate to Data tab in the Ribbon and click on Filter button

In the Column D, click on the dropdown and select only ‘1033’

This will show only the English phrases

In the filter dropdown, select everything except ‘1033’

Right click in the workbook and select Delete to delete all rows

You should now see only the English phrases

Delete Column C, D, E, F

Insert a column in the first row and type name in Column A and nickname in Column B

Save the file as .CSV and call it languageresources-<your-locale>.csv. I called it languageresources-en-NZ.csv

You can add your own phrases if you cannot find one in the list.

I wrote a simple PowerShell script Set-SPPhoneticSearch.ps1 to register the phrases: