SharePoint 2013 Search Spelling Suggestion

Search Query Suggestions and Search Spelling Suggestions. They are not the same!
Query Suggestions are offered while the user types in the search box. 
Spelling Suggestions are offered only in the search results pages, after the user executes the search. 


Search Suggestion:-



There are four sources for spelling suggestions:

1. The default static spelling dictionaries (static out of the box dictionaries).

2. The default dynamic spelling dictionary (dynamically generated from your content). This     is also called a "content-aligned spelling dictionary".

3. The Query Spelling Inclusions term set (manually entered).
4. The Query Spelling Exclusions term set (manually entered).




Spelling suggestions are based on the closest matches in the default spelling dictionaries and the Query Spelling Inclusions list. 
Only one suggestion will be displayed. It appears that a phonic / sound alike match is being used, so the properly spelled and misspelled words must be similar in length and pattern.
You can’t edit the default static or dynamic spelling dictionaries.

Static dictionaries

The static dictionary is a canned list of words. (Something like the Word dictionaries.)

Dynamically created dictionaries

The dynamic dictionary is created by search as content is indexed. I.e. it's based on words commonly found in your content.

For dynamic spelling correction to work, you should have at least several thousand medium-sized documents. The default settings require that a word occur in at least 1000 documents to be included in the dictionary.

The dynamic dictionary is updated once a night and can be a long running process. (The default timeout is 6 hours!)

Query Spelling Inclusions / Exclusions

1. You must have a configured Managed Metadata Service.
2. The terms must be added to the auto-created Query Spelling Inclusions term set.
3. You manually enter a list of words into an include or exclude list of terms.
4. You can only include single words, not phrases in the term sets.


It may take ten minutes or more for updates to the term sets to show up in search results. (Search Custom Dictionaries Update timer job)

Using Power shell - Change the threshold limit for spelling suggestion (default is 1000 as stated above)


There are two PowerShell cmdlets that can be used to manage the on premises.

    Get-SPEnterpriseSearchQuerySpellingCorrection
    Set-SPEnterpriseSearchQuerySpellingCorrection

Note: These cmdlets are currently only for on premises SharePoint. It looks like Office 365 is set to use the Dynamic dictionary.
You can see the spelling suggestion options using:

    $ssa = Get-SPEnterpriseSearchServiceApplication
    Get-SPEnterpriseSearchQuerySpellingCorrection -SearchApplication $ssa
    


SpellingDictionary = Static / Dynamic

Many of the blogs state that you can choose either Static or Dynamic as the SpellingDictionary value, and that by selecting one of these you would exclude your manually entered Query Spelling Inclusions .

The confusion seems to be around the definitions of the words Static and Dynamic. 
My testing shows that:
  
Dynamic = use the list of words found in your content, plus the Query Spelling Inclusions term set

Static = use the static built-in / out of the box dictionary, plus the Query Spelling Inclusions term set

As an example, I do not have "SharePoint" or "SharePint" in my Query Spelling Inclusions term set, but I do have "corydoras". When I do a search for "SharePint" I get the following only when SpellingDictionary is set to Static: (this word is in the canned dictionary)
    
image

When searching for a term in the Query Spelling Inclusions term set like "corydoras"
 I get results regardless of if SpellingDictionary is set to Static or Dynamic.
    
image

Why don't I get any help when SpellingDictionary is set to Dynamic and I search for "SharePint"?
    
image

Take a look at the TermFrequencyThreshold property. Using the defaults SharePoint would need to find at least 1000 documents that contain the word "SharePoint". 

My testing sample set of documents is not quite that big. If I change it from 1000 to 20 and run the "Spelling dictionary update" timer job then I can start to get useful results from "Did you mean?" for "SharePint". (i.e. "SharePoint" was in at least 20 of my sample documents.)
    
image


Ref:  
https://technet.microsoft.com/en-in/library/jj219497.aspx
https://technet.microsoft.com/en-in/library/jj591607.aspx





No comments:

Post a Comment