SearchSuggestionCollection class

Applies to Windows only

Represents a collection of search suggestions to be displayed in the search pane in response to a suggestionsrequested event.


var searchSuggestionCollection = searchPaneSuggestionsRequested.searchSuggestionCollection;




The SearchSuggestionCollection class has these types of members:


The SearchSuggestionCollection class has these methods. With C#, Visual Basic, and C++, it also inherits methods from the Object class.

AppendQuerySuggestion Appends a query suggestion to the list of search suggestions for the search pane.
AppendQuerySuggestions Appends a list of query suggestions to the list of search suggestions for the search pane.
AppendResultSuggestion Appends a suggested search result to the list of suggestions to display in the search pane.
AppendSearchSeparator Appends a text label that is used to separate groups of suggestions in the search pane.



The SearchSuggestionCollection class has these properties.

PropertyAccess typeDescription


Read-onlyThe number of suggestions in the collection.



The search pane can display 5 suggestions, at most. Additionally, each separator you use takes the place of a suggestion and lowers the number of suggestions that you can display. Learn more about displaying suggestions in Guidelines and checklist for search.

An app retrieves this object through the searchPaneSuggestionsRequest.searchSuggestionCollection property while handling a suggestionsrequested event.


The Search contract sample demonstrates how to respond to a suggestionsrequested event, including how to use the searchSuggestionCollection.

// Register the onsuggestionsrequested event in your apps global scope, for example default.js, so that it is registered as soon as your app is launched.
Windows.ApplicationModel.Search.SearchPane.getForCurrentView().onsuggestionsrequested = function (eventObject) {
    var queryText = eventObject.queryText, suggestionRequest = eventObject.request, linguisticDetails = eventObject.linguisticDetails;

    var queryAlternatives = linguisticDetails.queryTextAlternatives;
    var maxNumberOfSuggestions = 5;
    for (var i = 0, len = queryAlternatives.length, done = false; i < len && !done; i++) {
        // toLowerCase not necessary for East Asian languages. Preserves compatibility when non East Asian suggestions are mixed in with East Asian suggestions.
        var alternative = queryAlternatives[i].toLowerCase();
        for (var j = 0, suggestionLength = suggestionList.length; j < suggestionLength; j++) {
            if (suggestionList[j].substr(0, alternative.length).toLowerCase() === alternative) {
                if (suggestionRequest.searchSuggestionCollection.size === maxNumberOfSuggestions) {
                    done = true;

    // Construct list of alternatives so we can output them.
    var alternatives = "";
    for (var k = 0, alternativeCount = queryAlternatives.length; k < alternativeCount; k++) {
        alternatives += queryAlternatives[k];
    if (suggestionRequest.searchSuggestionCollection.size > 0) {
        WinJS.log && WinJS.log("Suggestions provided for query: " + queryText + "\nUsing alternatives: " + alternatives, "sample", "status");
    } else {
        WinJS.log && WinJS.log("No suggestions provided for query: " + queryText + "\nUsing alternatives: " + alternatives, "sample", "status");


Minimum supported client

Windows 8 [Windows Store apps only]

Minimum supported server

Windows Server 2012 [Windows Store apps only]

Minimum supported phone

None supported


Windows::ApplicationModel::Search [C++]



See also

Search contract sample
Guidelines and checklist for search
SearchPane.SuggestionsRequested event
SearchPaneSuggestionsRequestedEventArgs class
SearchPaneSuggestionsRequestedEventArgs.Request property
SearchPaneSuggestionsRequest class
SearchPaneSuggestionsRequest.SearchSuggestionCollection property



© 2014 Microsoft