Partager via


Suggestion de recherche Dataverse

Utilisez cette API pour prendre en charge une expérience de champ de recherche plus riche. Par exemple, lorsque l’utilisateur saisit chaque caractère de son critère de recherche, appelez cette API et remplissez la liste déroulante du champ de recherche avec les résultats de requête suggérés.

En plus d’un critère de recherche, les résultats renvoyés peuvent être influencés en transmettant des valeurs pour les paramètres suivants :

Nom  Type Description Pour plus d’informations :
search string Obligatoire. Texte à rechercher. paramètre de recherche
entities string La valeur par défaut est la recherche dans toutes les entités configurées pour la recherche . paramètre entities
filter string Filtrer les critères pour réduire les résultats renvoyés. paramètre filter
fuzzy bool Utilisez la recherche approximative pour ne pas être embêté par les fautes d’orthographe. La valeur par défaut est false. paramètre fuzzy
options string Les options sont des paramètres configurés pour rechercher un critère de recherche. Par exemple "{ 'advancedsuggestenabled': 'true' }". paramètre options
orderby string Liste de clauses séparées par des virgules où chaque clause se compose d’un nom d’attribut suivi de asc ou desc. paramètre orderby
top int Nombre de suggestions à récupérer. La valeur par défaut est 5. paramètre top

Paramètres

Cette section comprend des détails sur les paramètres introduits dans le tableau ci-dessus.

search Paramètre

Type : chaîne
Facultatif : faux

Texte à rechercher. Le terme recherché doit comporter au moins trois caractères et est limité à 100 caractères.

entities Paramètre

Type : chaîne
Facultatif : vrai

La valeur par défaut est la recherche dans toutes les entités configurées pour la recherche . Utilisez cette propriété pour affiner les résultats.

filter Paramètre

Type : chaîne
Facultatif : vrai

Filtrez les critères pour réduire les résultats renvoyés en fonction des enregistrements qui correspondent aux critères de filtre.

fuzzy Paramètre

Type : bool
Facultatif : vrai

Utilisez la recherche approximative pour ne pas être embêté par les fautes d’orthographe. La valeur par défaut est false.

options Paramètre

Type : chaîne
Facultatif : vrai

Les options sont des paramètres configurés pour rechercher un critère de recherche. Les options valides pour la requête de suggestion sont :

"{ 'advancedsuggestenabled': 'true' }".

orderby Paramètre

Type : chaîne
Facultatif : vrai

Liste de clauses séparées par des virgules où chaque clause se compose d’un nom d’attribut suivi de asc ou desc.

top Paramètre

Type : entier
Facultatif : vrai

Nombre de suggestions à récupérer. La valeur par défaut est 5.

Response

La réponse de l’opération de suggestion est une chaîne d’échappement qui inclut des données JSON.

La réponse sans échappement contient du JSON utilisant les propriétés suivantes.

Nom  Type Description
Error ErrorDetail Fournit des informations sur les erreurs de la recherche cognitive Azure.
Value SuggestResult[] Une collection d’enregistrements correspondants.
QueryContext QueryContext Contexte de requête renvoyé dans le cadre de la réponse. Cette propriété est utilisée pour la recherche back-end. Il est inclus pour les futures versions de fonctionnalités et n’est pas utilisé actuellement.

Types de réponse

La réponse renvoie les types suivants :

ErrorDetail

Ce type est le même ErrorDetail que celui renvoyé par l’API de requête.

SuggestResult

Fournit le texte suggéré.

Nom  Type Description
Text string Fournit le texte suggéré.
Document Dictionary<string, object> Document.

QueryContext

C’est le même QueryContext que celui renvoyé par l’API de requête.

Examples

Les exemples suivants montrent comment utiliser l’opération de suggestion. Chacun de ces exemples transmet la valeur Cont comme paramètre de recherche et demande les trois principales suggestions.

Cet exemple est tiré de l’exemple du SDK pour les opérations de recherche .NET sur GitHub. La méthode statique OutputSearchSuggest renvoie les trois principales suggestions pour tout critère de recherche.

/// <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");
}

Sortie

Lorsque vous appelez la méthode OutputSearchSuggest avec une instance authentifiée de la classe ServiceClient avec le searchTerm défini sur Cont :

OutputSearchSuggest(service: serviceClient, searchTerm: "Cont");

Le résultat ressemble à ce qui suit :

OutputSearchSuggest START

        Text:{crmhit}cont{/crmhit}act
        Document:
                @search.objectid: 9335eda1-ef69-ee11-9ae7-000d3a88a4a2
                @search.entityname: contact
                @search.objecttypecode: 2
                fullname: Yvonne McKay (sample)

        Text:{crmhit}cont{/crmhit}act
        Document:
                @search.objectid: 9535eda1-ef69-ee11-9ae7-000d3a88a4a2
                @search.entityname: contact
                @search.objecttypecode: 2
                fullname: Susanna Stubberod (sample)

        Text:{crmhit}cont{/crmhit}act
        Document:
                @search.objectid: 9735eda1-ef69-ee11-9ae7-000d3a88a4a2
                @search.entityname: contact
                @search.objecttypecode: 2
                fullname: Nancy Anderson (sample)

OutputSearchSuggest END

Classes de soutien

La méthode OutputSearchSuggest dépend des classes de soutien suivantes pour envoyer la requête et traiter le résultat.

Classes searchsuggestRequest et searchsuggestResponse

Ces classes sont générées à l’aide de la commande de CLI Power Platform pac modelbuilder build comme décrit dans Générer des classes à liaison anticipée pour le SDK pour .NET.

Classe ErrorDetail

Cette classe est la même classe ErrorDetail utilisée pour l’exemple de requête.

Classe SuggestResults

À utiliser pour désérialiser les données de la propriété searchsuggestResponse.response.

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; }
}
Classe SuggestResult

Objet de résultat pour suggérer des résultats.

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; }
}
Classe QueryContext

Cette classe est la même classe QueryContext utilisée pour l’exemple de requête.

Voir aussi

Rechercher des enregistrements Dataverse
Requête de recherche Dataverse
Recherche par exécution automatique Dataverse
Statistiques et statut de recherche Dataverse
Recherche héritée Dataverse

Notes

Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)

Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).