Compartir vía


Búsqueda con autocompletado de Dataverse

La API de autocompletar permite a los consumidores enviar un término consulta de búsqueda parcial para la búsqueda de Dataverse y obtener el término de búsqueda que es la posible intención del usuario.

Utilice esta API para respaldar una experiencia de cuadro de búsqueda más rica. A medida que el usuario introduce cada carácter de su término de búsqueda, llame al autocompletado y complete la consulta del cuadro de búsqueda con el resultado del autocompletado para completar la palabra con escritura anticipada. Por ejemplo: escribir set se autocompleta en settings:

Ejemplo que muestra la función de autocompletar con la palabra 'settings'

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. Término de búsqueda parámetro search
entities string El ámbito predeterminado es buscar en todas las entidades y campos de búsqueda configurados. 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

Parámetros

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

Parámetro search

Tipo: cadena
Opcional: falso

Término de búsqueda debe tener al menos un carácter y tiene un límite de 100 caracteres.

Parámetro entities

Tipo: cadena
Opcional: verdadero

El ámbito predeterminado es buscar en todas las entidades y campos de búsqueda configurados. Este parámetro utiliza el mismo tipo de entidad de búsqueda de consulta usado por la API de consulta.

Parámetro filter

Tipo: cadena
Opcional: verdadero

Criterios de filtrado para reducir los resultados devueltos. Este parámetro utiliza los mismos valores de cadena que Parámetro de filtro de consulta.

Parámetro fuzzy

Tipo: booleano
Opcional: verdadero

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

Cuando se establece en verdadero, esta API encuentra sugerencias incluso si hay un carácter sustituido o faltante en el texto de búsqueda. La distancia de edición es 1 por cadena de consulta. Si la cadena de consulta tiene varios términos, solo puede haber un carácter faltante, adicional, sustituido o transpuesto en toda la cadena. Habilitar las coincidencias aproximadas puede ser una mejor experiencia en algunos escenarios, pero tiene un coste de rendimiento, ya que las búsquedas de sugerencias aproximadas son más lentas y consumen más recursos.

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 string El texto.
QueryContext QueryContext 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 tipo es el mismo ErrorDetail devuelto por la API de consulta.

QueryContext

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

Ejemplos

Los siguientes ejemplos muestran cómo usar la operación de autocompletar. Estos ejemplos devuelven resultados de autocompletar para el campo de la tabla de cuentas name.

Este ejemplo es de la muestra de SDK para operaciones de búsqueda de .NET en GitHub. El método estático OutputAutoComplete acepta un valor para el parámetro de búsqueda.

/// <summary>
/// Demonstrate autocomplete API
/// </summary>
/// <param name="service">The authenticated IOrganizationService instance to use.</param>
/// <param name="searchTerm">The term to use</param>
/// <returns></returns>
static void OutputAutoComplete(IOrganizationService service, string searchTerm)
{
    Console.WriteLine("OutputAutoComplete START\n");

    searchautocompleteRequest request = new()
    {
        search = searchTerm,
        filter = null,
        fuzzy = true,
        entities = JsonConvert.SerializeObject(new List<SearchEntity>()
            {
                new SearchEntity()
                {
                    Name = "account",
                    SelectColumns = new List<string>() { "name", "createdon" },
                    SearchColumns = new List<string>() { "name" },
                }
            }
        )
    };

    var searchautocompleteResponse = (searchautocompleteResponse)service.Execute(request);

    SearchAutoCompleteResults results = JsonConvert.DeserializeObject<SearchAutoCompleteResults>(searchautocompleteResponse.response);

    Console.WriteLine($"\tSearch: {request.search}");
    Console.WriteLine($"\tValue: {results.Value}");

    Console.WriteLine("\nOutputAutoComplete END\n");
}

Salida

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

OutputAutoComplete(service: serviceClient, searchTerm: "Con");

El resultado deberá ser ahora similar a esto:

OutputAutoComplete START

        Search: Con
        Value: {crmhit}contoso{/crmhit}

OutputAutoComplete END

Clases de apoyo

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

Clases searchautocompleteRequest y searchautocompleteResponse

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 SearchEntity

Esta clase es la misma clase SearchEntity utilizada para el ejemplo de consulta. En este caso, la usa para establecer la propiedad searchautocompleteRequest.entities.

Clase SearchAutoCompleteResults

Úsela para deserializar datos JSON de la propiedad de cadena searchautocompleteResponse.response.

class SearchAutoCompleteResults
{
   /// <summary>
   /// The Azure Cognitive error detail returned as part of response.
   /// </summary>
   public ErrorDetail? Error {  get; set; }

   /// <summary>
   /// The text
   /// </summary>
   public string? Value { get; set; }

   /// <summary>
   /// This request is used for backend search, this is included for future feature releases, it is not currently used.
   /// </summary>
   public QueryContext? QueryContext { get; set; }
}
Clase ErrorDetail

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

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
Sugerencia de búsqueda 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).