We have a site on a 2013 on-prem where we have created a custom search result and setup a search results page to direct searches. Currently the drop down suggestions in the search box are not helpful. They come from the entire farm and suggest words that aren't found anywhere on our site.
I noticed in the snippet gallery for configuring the search box there is a property QuerySuggestionsSourceID. I tried adding that to the snippet using the guid for our custom result source. Which, after publishing and hard refresh, didn't make a difference.
I then did a google search and found this tutorial.
EDIT
That tutorial was for a search box webpart. My original issue was with the search snippet on a the master page. I have since tried following his tutorial. Again I was able to see that the xml headers sent with the suggestion request changed to whatever source id and number of suggestions, but it didn't change the results shown in the suggestion drop down.
END EDIT
When I set the attribute QuerySuggestionsSourceID to the GUIDs of either a result sources provided by the site or the site collection I can see the change in the debugger. As I type my search there is a call to https://site/_vti_bin/client.svc/ProcessQuery
and it includes a request payload of the following XML which includes the value I include.
<Request xmlns="http://schemas.microsoft.com/sharepoint/clientquery/2009" SchemaVersion="15.0.0.0" LibraryVersion="15.0.0.0" ApplicationName="Javascript Library">
<Actions>
<ObjectPath Id="1" ObjectPathId="0"/>
<SetProperty Id="2" ObjectPathId="0" Name="QueryText">
<Parameter Type="String">brea</Parameter>
</SetProperty>
<SetProperty Id="3" ObjectPathId="0" Name="Culture">
<Parameter Type="Number">1033</Parameter>
</SetProperty>
<SetProperty Id="4" ObjectPathId="0" Name="ShowPeopleNameSuggestions">
<Parameter Type="Boolean">false</Parameter>
</SetProperty>
<SetProperty Id="5" ObjectPathId="0" Name="SourceId">
<Parameter Type="Guid">{66d66aa5-67dc-4347-a89b-ace29e8d44b5}</Parameter>
</SetProperty>
<Method Name="GetQuerySuggestionsWithResults" Id="6" ObjectPathId="0">
<Parameters>
<Parameter Type="Number">5</Parameter>
<Parameter Type="Number">3</Parameter>
<Parameter Type="Boolean">true</Parameter>
<Parameter Type="Boolean">true</Parameter>
<Parameter Type="Boolean">false</Parameter>
<Parameter Type="Boolean">false</Parameter>
</Parameters>
</Method>
</Actions>
<ObjectPaths>
<Constructor Id="0" TypeId="{80173281-fffd-47b6-9a49-312e06ff8428}"/>
</ObjectPaths>
</Request>
I've also tried changing the number of results to return and the number of letters the user needs to type before the suggestions are made, but none of those seem to change the suggestions.
Am I not understanding what this is supposed to do? If this doesn't do what I'm thinking, is there a way to get the search box suggestions to only be from the same result source as we are using?
Is there something that needs to be configured in central admin? I only have Site Collection admin level permissions.