Events
Power BI DataViz World Championships
Feb 14, 4 PM - Mar 31, 4 PM
With 4 chances to enter, you could win a conference package and make it to the LIVE Grand Finale in Las Vegas
Learn moreThis browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Use this API to support a richer search box experience. For example, as the user enters each character of their search term, call this API and populate the dropdown list of the search field with the suggested query results.
In addition to a search term, the results returned can be influenced by passing values for the following parameters:
Name | Type | Description | More information |
---|---|---|---|
search |
string | Required. The text to search with. | search parameter |
entities |
string | The default is searching across all search–configured entities. | entities parameter |
filter |
string | Filter criteria to reduce results returned. | filter parameter |
fuzzy |
bool | Use fuzzy search to aid with misspellings. The default is false. | fuzzy parameter |
options |
string | Options are settings configured to search a search term. For example "{ 'advancedsuggestenabled': 'true' }" . |
options parameter |
orderby |
string | List of comma-separated clauses where each clause is an attribute name followed by asc or desc . |
orderby parameter |
top |
int | Number of suggestions to retrieve. The default is 5. | top parameter |
This section contains details about the parameters introduced by the table above.
Type: string
Optional: false
The text to search with. Search term must be at least three characters long and has a 100 character limit.
Type: string
Optional: true
The default is searching across all search–configured entities. Use this property to narrow the results.
Type: string
Optional: true
Filter criteria to reduce results returned based on records that match the filter criteria.
Type: bool
Optional: true
Use fuzzy search to aid with misspellings. The default is false.
Type: string
Optional: true
Options are settings configured to search a search term. Valid options for suggest query is:
"{ 'advancedsuggestenabled': 'true' }"
.
Type: string
Optional: true
List of comma-separated clauses where each clause is an attribute name followed by asc
or desc
.
Type: int
Optional: true
Number of suggestions to retrieve. The default is 5.
The response from the suggest operation is an escaped string that includes JSON data.
The unescaped response contains JSON using the following properties.
Name | Type | Description |
---|---|---|
Error |
ErrorDetail | Provides error information from Azure Cognitive search. |
Value |
SuggestResult [] |
A collection of matching records. |
QueryContext |
QueryContext | The query context returned as part of response. This property is used for backend search. It's included for future feature releases and isn't currently used. |
The response returns the following types:
This is the same ErrorDetail returned by the query API.
Provides the suggested text.
Name | Type | Description |
---|---|---|
Text |
string | Provides the suggested text. |
Document |
Dictionary<string, object> |
The document. |
This is the same QueryContext returned by the query API.
The following examples show how to use the suggest operation. Each of these examples pass the value "Cont" as the search parameter and request the top three suggestions.
This example is from the SDK for .NET search operations sample on GitHub. The static OutputSearchSuggest
method returns the top three suggestions for any search term.
/// <summary>
/// Demonstrate suggest API
/// </summary>
/// <param name="service">The authenticated IOrganizationService instance to use.</param>
/// <param name="searchTerm">The term to use</param>
/// <returns></returns>
static void OutputSearchSuggest(IOrganizationService service, string searchTerm)
{
Console.WriteLine("OutputSearchSuggest START\n");
searchsuggestRequest request = new()
{
search = searchTerm,
top = 3
};
var searchsuggestResponse = (searchsuggestResponse)service.Execute(request);
SearchSuggestResults results = JsonConvert.DeserializeObject<SearchSuggestResults>(searchsuggestResponse.response);
results.Value?.ForEach(suggestion =>
{
Console.WriteLine($"\tText:{suggestion.Text}");
Console.WriteLine("\tDocument: ");
foreach (string key in suggestion.Document.Keys)
{
Console.WriteLine($"\t\t{key}: {suggestion.Document[key]}");
}
Console.WriteLine();
});
Console.WriteLine("OutputSearchSuggest END\n");
}
When you invoke the OutputSearchSuggest
method with an authenticated instance of the ServiceClient class with the searchTerm
set to "Cont":
OutputSearchSuggest(service: serviceClient, searchTerm: "Cont");
The output looks something like the following:
OutputSearchSuggest START
Text:{crmhit}cont{/crmhit}act
Document:
@search.objectid: aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
@search.entityname: contact
@search.objecttypecode: 2
fullname: Yvonne McKay (sample)
Text:{crmhit}cont{/crmhit}act
Document:
@search.objectid: bbbbbbbb-1111-2222-3333-cccccccccccc
@search.entityname: contact
@search.objecttypecode: 2
fullname: Susanna Stubberod (sample)
Text:{crmhit}cont{/crmhit}act
Document:
@search.objectid: cccccccc-2222-3333-4444-dddddddddddd
@search.entityname: contact
@search.objecttypecode: 2
fullname: Nancy Anderson (sample)
OutputSearchSuggest END
The OutputSearchSuggest
method depends on the following supporting classes to send the request and process the result.
These classes are generated using Power Platform CLI pac modelbuilder build command as described in Generate early-bound classes for the SDK for .NET.
This class is the same ErrorDetail
class used for the query example.
Used to deserialize the data from the searchsuggestResponse.response
property
class SearchSuggestResults
{
/// <summary>
/// Provides error information from Azure Cognitive search.
/// </summary>
[JsonProperty(PropertyName = "Error")]
public ErrorDetail? Error { get; set; }
/// <summary>
/// A collection of matching records.
/// </summary>
public List<SuggestResult>? Value { get; set; }
/// <summary>
/// The query context returned as part of response. This property is used for backend search, this is included for future feature releases, it is not currently used.
/// </summary>
public QueryContext? QueryContext { get; set; }
}
Result object for suggest results.
public sealed class SuggestResult
{
/// <summary>
/// Gets or sets the text.
/// </summary>
[JsonProperty(PropertyName = "text")]
public string Text { get; set; }
/// <summary>
/// Gets or sets document.
/// </summary>
[JsonProperty(PropertyName = "document")]
public Dictionary<string, object> Document { get; set; }
}
This class is the same QueryContext
class used for the query example.
Search for Dataverse records
Dataverse Search query
Dataverse Search autocomplete
Dataverse Search statistics and status
Dataverse legacy search
Events
Power BI DataViz World Championships
Feb 14, 4 PM - Mar 31, 4 PM
With 4 chances to enter, you could win a conference package and make it to the LIVE Grand Finale in Las Vegas
Learn moreTraining
Module
Search and filter knowledge articles by using Dynamics 365 Customer Service - Training
Learn how to search and filter knowledge articles by using Dynamics 365 Customer Service.