Fuzzy / Phonetic Search Does not Work in SharePoint 2013

Issue / Symptoms

Fuzzy / phonetic name searching is not working in people search in SharePoint 2013. For example, if you search for my name as “myree” (which is how it sounds), you would not get my profile as a result.

Here is a good reference on finding if your farm is having this issue (however the fix suggested is no longer the recommended solution): https://blogs.msdn.microsoft.com/ronalg/2015/02/25/sharepoint-2013-fuzzy-and-phonetic-people-search-dont-appear-to-be-working/

How to Reproduce the Issue

  1. Turn up logging level by running the following command (do this on non-prod or off hours)
Set-SPLogLevel –TraceSeverity:VerboseEx
  1. Open ULS log viewer and create a filter on “EN_EN.mdl” OR “fuzzy”
  2. Browse to the people search page and enter a name
  3. You will see entries similar to the following if your farm has this problem
On Query Server:

10/25/2016 13:07:45.13 NodeRunnerQuery2-936ea3ce-afa6- (0x0C0C) 0x270C Search Fuzzy Name Search ajyfa Unexpected CCANameProjector : Exception:Exception : Access to the path ‘E:\Program Files\Microsoft Office Servers\15.0\Data\Office Server\CanonicalResources\ProjectionModels\EN_EN.mdl’ is denied. encountered while attempting to load the Projection Model Catalog E:\Program Files\Microsoft Office Servers\15.0\Data\Office Server\CanonicalResources\ProjectionModels\EN_EN.mdl for Language : en encountered while attempting to load the projection model. 3af3b09d-aa93-906f-2913-467b8e5e0f93

On Crawl Server:

CCANameProjector : Exception:Exception : Access to the path ‘E:\Program Files\Microsoft Office Servers\15.0\Data\Office Server\CanonicalResources\ProjectionModels\EN_EN.mdl’ is denied. encountered while attempting to load the Projection Model Catalog E:\Program Files\Microsoft Office Servers\15.0\Data\Office Server\CanonicalResources\ProjectionModels\EN_EN.mdl for Language : en encountered while attempting to load the projection model.
CCAMetadataProducer : Fuzzy metadata generation failed to load resource for language: en.
CCAMetadataProducer : Fuzzy metadata generation failed for the current record. Check logs for more details.

  1. Remember to turn log levels back down!
Clear-SPLogLevel

If you watch the search index directory using procmon while running searches or profile crawls, you will see the access denied messages.

Cause

This is a known bug in SharePoint 2013.  It has been there since RTM.  The good news is that it is finally fixed in the July 2016 CU for SharePoint 2013.  This happens in scenarios when you run in the recommended way of having a separate service account (domain account) for the service service.  Under this condition, the service account does not have the permissions that the code requires.  The fix in the July CU changes the code so that read only access is all that is required on the search index directory.

Solution

Upgrade your farm to at least the July 2016 CU.  Once this fix has been applied, you will likely need to wait 1 day for all of the indexing / processing to take place before fuzzy / phonetic searches start working.

Test

After waiting a day, test this out using the SharePoint Search Query Tool.  Make sure you have nicknames and Phonetic enabled as shown below:

searchtool

Workarounds

If you can’t upgrade your farm for whatever reason, a temporary workaround would be to add your search service account to WSS_ADMIN_WPG local security group.  This change would require a reboot (or a service restart).

Advertisements

One thought on “Fuzzy / Phonetic Search Does not Work in SharePoint 2013

  1. Pingback: SharePoint Phonetic/Nickname Search | SharePoint Q&A

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s