Five New Optimizely Certifications are Here! Validate your expertise and advance your career with our latest certification exams. Click here to find out more

Navigation [hide] [expand]
Area: Optimizely Search & Navigation
ARCHIVED This content is retired and no longer maintained. See the latest version here.

This topic describes the autocomplete, spelling suggestion, and related queries functionality provided by the Search Statistics component of the Episerver Find API. 

How it works

Search statistics provide an HTTP API for tracking searches and collecting statistical data about them. The aggregated statistics expose functionality you can use to enhance the search: autocomplete, spelling suggestions, and related queries.

Although you can interact with the Search Statistics API using any programming language that makes HTTP requests, API usage is typically done via JavaScript.

Tracking

To gather search statistics for later analysis, use the Track() method in the search query:

C#
SearchClient.Instance.Search<IContent>()
  .For("banana")
  .Track()
  .GetResult();

See Tracking for more information.

Autocomplete

Search Statistics support autocomplete suggestions by returning previous queries filtered on a prefix. A jQuery example is below.

JavaScript
<script type="text/javascript">
$.get('/find_v2/_autocomplete?prefix=c&size=3', function (data) {
    $.each(data.Hits, function(index, value)
    {
        $('#autocomplete').append("<p>"+"Autocomplete for 'c': <a href=/Search/?q=" + value.Query + ">" + value.Query + "</a></p>");
    }
    )}, "jsonp");
</script>
<div id="autocomplete"></div>

Autocomplete accepts these parameters:

  • prefix (mandatory): the prefix to filter all returned query suggestions.
  • size (optional): the number of autocomplete suggestions to return.

Spellchecking

Based on what other users searched for, Search Statistics can provide spellchecks, popular queries similar to the one passed to the spellchecker. A jQuery example is below.

JavaScript
<script type="text/javascript">
$.get('/find_v2/_spellcheck?query=camonix?size=1', function (data) {
    $.each(data.Hits, function(index, value)
    {
        $('#spellcheck').append("<p>"+"Spellcheck for 'camonix': <a href=/Search/?q=" + value.Suggestion + ">" + value.Suggestion + "</a></p>");
    }
    )}, "jsonp");
</script>
<div id="spellcheck"></div>

The spellchecker accepts these parameters:
  • query (mandatory): the query to return spellchecks for.
  • size (optional): the number of spellchecks to return.

Related queries

Sometimes, it is valuable to discover relationships, for example people who search for a also search for b. Search Statistics calls this related queries. You can request them with the following jQuery.

JavaScript
<script type="text/javascript">
$.get('/find_v2/_didyoumean?query=chamoni&size=1', function (data) {
    
$.each(data.Hits, function(index, value)
    
{
        $('#didyoumean').append("<p>"+"Didyoumean for 'chamonix': <a href=/Search/?q=" + value.Suggestion + ">" + value.Suggestion + "</a></p>");
    
}
    
)}, "jsonp");
</script>
<div id="didyoumean"></div>

Related queries accept these parameters:
  • query (mandatory): the query for which to return related queries.
  • size (optional): the number of related queries to return.

Related topics

Last updated: Nov 16, 2015