Compartir por


Sugerencia de búsqueda de Dataverse

Utilice esta API para respaldar una experiencia de cuadro de búsqueda más rica. Por ejemplo, cuando el usuario introduce cada carácter de su término de búsqueda, llame a esta API y complete la lista desplegable del campo de búsqueda con los resultados de consulta sugeridos.

Además de término de búsqueda, los resultados devueltos pueden verse influenciados pasando valores para los siguientes parámetros:

Name Type Description Más información
search string Requerido. El texto con el que se buscará Parámetro de búsqueda
entities string El valor predeterminado es buscar en todas las entidades configuradas. parámetro entities
filter string Criterios de filtrado para reducir los resultados devueltos. parámetro filter
fuzzy bool Utilice la búsqueda borrosa para ayudar con los errores ortográficos. El valor predeterminado es false. parámetro fuzzy
options string Las opciones son configuraciones configuradas para buscar un término de búsqueda. Por ejemplo "{ 'advancedsuggestenabled': 'true' }". parámetro options
orderby string Una lista de cláusulas separadas por comas, donde cada cláusula es un nombre de atributo seguido de asc o desc. parámetro orderby
top entero Número de sugerencias a recuperar. El valor predeterminado es 5. parámetro top

Parámetros

Esta sección contiene detalles sobre los parámetros presentados en la tabla anterior.

Parámetro search

Tipo: cadena
Opcional: falso

El texto con el que se buscará Término de búsqueda debe tener al menos tres caracteres y tiene un límite de 100 caracteres.

Parámetro entities

Tipo: cadena
Opcional: verdadero

El valor predeterminado es buscar en todas las entidades configuradas. Utilice esta propiedad para limitar los resultados.

Parámetro filter

Tipo: cadena
Opcional: verdadero

Filtre los criterios para reducir los resultados devueltos en función de los registros que coincidan con los criterios del filtro.

Parámetro fuzzy

Tipo: booleano
Opcional: verdadero

Utilice la búsqueda borrosa para ayudar con los errores ortográficos. El valor predeterminado es false.

Parámetro options

Tipo: cadena
Opcional: verdadero

Las opciones son configuraciones configuradas para buscar un término de búsqueda. Las opciones válidas para sugerir consulta son:

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

Parámetro orderby

Tipo: cadena
Opcional: verdadero

Una lista de cláusulas separadas por comas, donde cada cláusula es un nombre de atributo seguido de asc o desc.

Parámetro top

Type: int
Opcional: verdadero

Número de sugerencias a recuperar. El valor predeterminado es 5.

Response

La respuesta de la operación sugerida es una cadena de escape que incluye datos JSON.

La respuesta sin escape contiene JSON usando las siguientes propiedades.

Name Type Description
Error ErrorDetail Proporciona información de error de la búsqueda de Azure Cognitive.
Value SuggestResult[] Una colección de registros coincidentes.
QueryContext QueryContext El contexto de la consulta se devolvió como parte de la respuesta. Esta propiedad se usa pra la búsqueda en el backend. Está incluido para versiones de actualización de características y actualmente no se utiliza.

Tipos de respuesta

La respuesta devuelve los siguientes tipos:

ErrorDetail

Este es el mismo ErrorDetail devuelto por la API de consulta.

SuggestResult

Proporciona el texto sugerido.

Name Type Description
Text string Proporciona el texto sugerido.
Document Dictionary<string, object> El documento.

QueryContext

Este es el mismo QueryContext devuelto por la API de consulta.

Ejemplos

Los siguientes ejemplos muestran cómo usar la operación de sugerir. Cada uno de estos ejemplos pasa el valor "Cont" como parámetro de búsqueda y solicita las tres sugerencias principales.

Este ejemplo es de la muestra de SDK para operaciones de búsqueda de .NET en GitHub. El método estático OutputSearchSuggest devuelve las tres sugerencias principales para cualquier término de búsqueda.

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

Salida

Cuando invoca el método OutputSearchSuggest con una instancia autenticada de la clase ServiceClient con searchTerm establecido en "Cont":

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

El resultado deberá ser ahora similar a esto:

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

Clases de apoyo

El método OutputSearchSuggest depende de las siguientes clases de soporte para enviar la solicitud y procesar el resultado.

Clases searchsuggestRequest y searchsuggestResponse

Estas clases se generan usando el comando Power Platform CLI pac modelbuilder build como se describe en Generar clases enlazadas anticipadamente para el SDK para .NET.

Clase ErrorDetail

Esta clase es la misma clase ErrorDetail utilizada para el ejemplo de consulta.

Clase SuggestResults

Se usa para deserializar los datos de la propiedad 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; }
}
Clase SuggestResult

Objeto de resultado para sugerir resultados.

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

Esta clase es la misma clase QueryContext utilizada para el ejemplo de consulta.

Consulte también

Buscar registros de Dataverse
Consulta de búsqueda de Dataverse
Búsqueda con autocompletado de Dataverse
Estadísticas y estado de búsqueda de Dataverse
Búsqueda heredada de Dataverse

Nota

¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)

La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).