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

Si ha utilizado Postman con la API web de Dataverse, sabe lo útil que es intentar utilizar las API. Tenemos algunas instrucciones sobre cómo configurar un entorno Postman para autenticarse con la API web de Dataverse aquí: Configurar un entorno Postman.

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}}/

Extraer respuesta JSON con Postman

Cada una de las operaciones de búsqueda devuelve JSON que tiene una propiedad response. La propiedad response es una cadena de escape que contiene datos JSON. Es difícil leer este valor de cadena, pero puede usar la característica Postman Visualize para transformar este valor de cadena en JSON legible.

  1. En su solicitud de Postman, seleccione la pestaña Pruebas e introduzca el siguiente script:

    let responseString = JSON.stringify(JSON.parse(pm.response.json().response),null,1);
    
    template = '<pre>{{response}}</pre>';
    
    pm.visualizer.set(template, {
        response: responseString
    });
    
  2. Ejecute su solicitud y seleccione el botón Visualizar.

Ahora puede ver los datos JSON sin escape devueltos en la propiedad response.

Consulta de Postman con script de prueba para extraer JSON de una cadena de escape

Más información:

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

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:

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).