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
:
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