Buscar registros de Dataverse
La búsqueda de Dataverse ofrece resultados rápidos y completos en varias tablas, en una sola lista, ordenada por relevancia. También proporciona capacidades para admitir sugerencias y experiencias de autocompletado en aplicaciones.
Nota
Esta documentación para desarrolladores describirá cómo interactuar mediante programación con las API de búsqueda de Dataverse.
Consulte los siguientes temas para obtener información sobre la experiencia del usuario y cómo configurar la búsqueda de Dataverse su entorno:
Modo de uso
Los desarrolladores pueden utilizar las API de búsqueda de tres formas diferentes:
- El SDK de Dataverse para .NET
- El punto de conexión de la API web
/api/data/v9.x
- El punto de conexión de búsqueda nativa
/api/search/v2.0/
Las operaciones de búsqueda se definen como mensajes de Dataverse usando API personalizadas. Para proyectos .NET, puede utilizar el SDK para .NET.
Actualmente no hay clases incluidas en el SDK para utilizar estas operaciones. Para proyectos .NET Framework, puede utilizar el CLI de Power Platform de creación del constructor de modelos pac para generar las clases *Request
y *Response
para estos mensajes tal como lo haría para cualquier acción personalizada.
También puede usar las clases OrganizationRequest y OrganizationResponseOrganizationResponse.
Más información:
Operaciones de búsqueda
La búsqueda proporciona tres operaciones para respaldar una interfaz de usuario que permite buscar datos.
Nombre del mensaje SDK Acción de API web Punto de conexión de búsqueda 2.0 |
Description |
---|---|
searchquery Acción searchquery /api/search/v2.0/query |
Devuelve una página de resultados de búsqueda. Consulte la consulta de búsqueda de Dataverse |
searchsuggest Acción searchsuggest /api/search/v2.0/suggest |
Proporciona sugerencias cuando el usuario introduce texto en un campo de formulario. Consulte la Sugerencia de búsqueda de Dataverse |
searchautocomplete Acción searchautocomplete /api/search/v2.0/autocomplete |
Proporciona completado automático de la entrada a medida que el usuario escribe en un campo de formulario. Consulte Búsqueda con autocompletado de Dataverse |
También hay dos operaciones que puede utilizar para comprender si la búsqueda está habilitada y cómo está configurada.
Nombre del mensaje SDK Función de la API web Punto de conexión de búsqueda 2.0 |
Description |
---|---|
searchstatistics Función searchstatistics /api/search/v2.0/statistics |
Proporciona el tamaño de almacenamiento de la organización y el recuento de documentos. Consulte Estadísticas de búsqueda de Dataverse |
searchstatus Función searchstatus /api/search/v2.0/status |
Estado de búsqueda de una organización. Consulte Estado de búsqueda de Dataverse |
Usar Insomnia con la búsqueda de Dataverse
Si ha utilizado Insomnia con la API web de Dataverse, sabe lo útil que es intentar utilizar las API. Tenemos algunas instrucciones sobre cómo configurar un entorno de Insomnia para autenticarse con la API web de Dataverse aquí: Usar Insomnia con la API web de Dataverse
Puede utilizar las mismas instrucciones con las operaciones de búsqueda utilizando funciones y acciones de la API web. Si desea utilizar el punto de conexión de la búsqueda nativa 2.0, cambie estas dos variables de entorno:
Variables | Valor de la API web | Valor del punto de conexión de búsqueda 2.0 |
---|---|---|
version |
9.2 |
2.0 |
webapiurl |
{{url}}/api/data/v{{version}}/ |
{{url}}/api/search/v{{version}}/ |
Detectar si la búsqueda está habilitada
La búsqueda de Dataverse está habilitada de forma predeterminada para entornos de producción, pero es una característica de exclusión voluntaria, por lo que se puede desactivar incluso en un entorno de producción. Si está utilizando un entorno que no sea de producción, un administrador debe habilitarlo. Aprenda a habilitar la búsqueda en el centro de administración.
Error cuando la búsqueda no está habilitada
Si utiliza las operaciones de consulta, sugerencia o autocompletar cuando el entorno no está habilitado, obtendrá estos errores:
Código de error:
-2147185397
Mensaje:Dataverse Search feature is disabled for this organization.
Puede detectar si el servicio de búsqueda está habilitado si comprueba la configuración en la tabla de organización o usa la operación Estado de búsqueda de Dataverse.
Comprobar la tabla de Organización
La tabla Organización contiene una única fila de datos que controla cómo está configurada la organización. La columna booleana IsExternalSearchIndexEnabled le indica si la búsqueda está habilitada para la organización.
Esta función devuelve el valor de propiedad IsExternalSearchIndexEnabled
de la organización.
static bool IsExternalSearchIndexEnabled(IOrganizationService service) {
QueryExpression query = new QueryExpression("organization") {
ColumnSet = new ColumnSet("isexternalsearchindexenabled")
};
EntityCollection organizations = service.RetrieveMultiple(query);
return (bool)organizations.Entities.FirstOrDefault()["isexternalsearchindexenabled"];
}
Más información: Crear consultas con QueryExpression
Habilitar tablas y columnas para búsqueda
Las tablas y columnas habilitadas para la búsqueda se controlan mediante los datos en Dataverse.
Habilitar tablas
Solo aquellas tablas donde las propiedades EntityMetadata.CanEnableSyncToExternalSearchIndex.Value y EntityMetadata.ChangeTrackingEnabled son verdaderas se pueden habilitar para la búsqueda de Dataverse. Si el valor CanEnableSyncToExternalSearchIndex.CanBeChanged
es falso, no puede cambiar el valor. Más información: Propiedades administradas
Para habilitar una tabla para la búsqueda de Dataverse, establezca la propiedad EntityMetadata.SyncToExternalSearchIndex en true
.
Puede comprobar los valores de una tabla con el SDK o la API web utilizando el nombre lógico de la tabla. Reemplace account
en las siguientes consultas con el nombre lógico de la tabla que desea verificar.
static void RetrieveSearchSettingsForTable(IOrganizationService service, string logicalName = "account") {
RetrieveMetadataChangesRequest request = new RetrieveMetadataChangesRequest() {
Query = new EntityQueryExpression() {
Properties = new MetadataPropertiesExpression(
"CanEnableSyncToExternalSearchIndex",
"SyncToExternalSearchIndex")
}
};
request.Query.Criteria.Conditions.Add(
new MetadataConditionExpression(
propertyName: "LogicalName",
conditionOperator: MetadataConditionOperator.Equals,
value: logicalName));
var response = (RetrieveMetadataChangesResponse)service.Execute(request);
EntityMetadata table = response.EntityMetadata.FirstOrDefault();
Console.WriteLine($"CanEnableSyncToExternalSearchIndex: {table.CanEnableSyncToExternalSearchIndex.Value}");
Console.WriteLine($"SyncToExternalSearchIndex: {table.SyncToExternalSearchIndex}");
}
Output
CanEnableSyncToExternalSearchIndex: True
SyncToExternalSearchIndex: True
Más información:
Más información:
- Seleccionar tablas para la búsqueda de Dataverse
- Establecer propiedades administradas para la búsqueda de Dataverse
Habilitar columnas
Las columnas en las que se puede buscar la tabla están determinadas por si están incluidas en la vista Búsqueda rápida de cada tabla. Puede consultar la definición de la vista en la tabla Ver tabla (SavedQuery) y actualizarla mediante programación.
Más información:
Límites de protección de servicio
Los límites de API de protección del servicio comunes de Dataverse nunca se alcanzarán porque la búsqueda de Dataverse aplica un límite más bajo. La forma de gestionarlos es la misma.
La búsqueda de Dataverse permite a un usuario enviar una solicitud por segundo y cada organización está limitada a 150 solicitudes por minuto. Si excede este límite, se devuelve un error 429 Demasiadas solicitudes. Si se devuelve un error 429
, debe esperar hasta que haya pasado el período definido en el valor del encabezado de respuesta Retry-After
antes de enviar más solicitudes. El valor representa el número de segundos de espera.
Consulte también
Consulta de búsqueda de Dataverse
Sugerencia 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
Configurar la búsqueda de Dataverse para su entorno
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).