Buscar en los datos de la tabla usando la búsqueda de Dataverse

La búsqueda de Dataverse ofrece resultados rápidos y completos en varias tablas, en una sola lista, ordenada por relevancia. La búsqueda de Dataverse debe estar habilitada en su entorno de destino mediante un administrador antes de que pueda utilizar la característica. Más información: Uso de la búsqueda de Dataverse para buscar registros

Para empezar a usar la búsqueda de Dataverse, su aplicación simplemente emite una solicitud HTTP POST (actualmente solo API web) para iniciar una búsqueda de Dataverse. Al buscar datos, especifique los parámetros de consulta opcionales para establecer criterios sobre cómo se buscarán los datos del entorno.

Hay tres métodos de búsqueda de Dataverse que se pueden utilizar en la interfaz de de la aplicación web de Power Apps:

  • Buscar: proporciona una página de resultados de búsqueda.

  • Sugerencias: proporciona sugerencias cuando el usuario introduce texto en un campo de formulario.

  • Autocompletar: proporciona completado automático de la entrada a medida que el usuario escribe en un campo de formulario.

Las siguientes secciones describen cómo acceder a las capacidades de búsqueda mencionadas anteriormente desde el código de la aplicación.

Buscar

El ejemplo siugiente muestra la sintaxis mínima de una solicitud HTTP de búsqueda de Dataverse.

POST [Organization URI]/api/search/v1.0/query
{  
  "search": "<search term>"
}

El valor del parámetro search contiene el término que se va a buscar y tiene un límite de 100 caracteres.

Una respuesta de búsqueda correcta devuelve un estado HTTP de 200 y consta de:

  • Valor: una lista de tablas. De forma predeterminada, se devuelven 50 resultados. Incluye los resaltados de la búsqueda, que indican coincidencias con el valor del parámetro de búsqueda contenido en la etiqueta crmhit de la respuesta.

  • totalrecordcount: el recuento total de resultados (de tipo largo). Se devuelve un valor de −1 si returntotalrecordcount está establecido en falso (predeterminado).

  • facetas: los resultados de las facetas.

Además, puede agregar uno o más parámetros de consulta para personalizar cómo se realizará la búsqueda y qué resultados se devuelven. Los parámetros de consulta admitidos se indican en la siguiente sección.

Parámetros de consulta

Los siguientes parámetros de consulta son compatibles con la búsqueda de Dataverse.

entities=[list<string>] (optional)

La lista de tablas predeterminada busca en todas las tablas y columnas configuradas de búsqueda de Dataverse–. El administrador configura la lista predeterminada cuando la búsqueda de Dataverse está habilitada.

facets=[list<string>] (optional)

Las facetas admiten la capacidad de explorar en profundidad en los resultados de los datos después de que se hayan recuperado.

POST [Organization URI]/api/search/v1.0/query
{  
  "search": "maria",

  "facets": ["@search.entityname,count:100",  
    "account.primarycontactid,count:100",  
    "ownerid,count:100",  
    "modifiedon,values:2019-04-27T00:00:00|2020-03-27T00:00:00|2020-04-20T00:00:00|2020-04-27T00:00:00",
    "createdon,values:2019-04-27T00:00:00|2020-03-27T00:00:00|2020-04-20T00:00:00|2020-04-27T00:00:00"]
}

filter=[string] (optional)

Los filtros se aplican durante la búsqueda de datos y se especifican en la sintaxis estándar de OData.

POST [Organization URI]/api/search/v1.0/query
{  
  "search": "maria",

  "filter": "account:modifiedon ge 2020-04-27T00:00:00,
    activities: regardingobjecttypecode eq 'account', annotation:objecttypecode eq 'account',
    incident: (prioritycode eq 1 or prioritycode eq 2)"
}

returntotalrecordcount = true | false (optional)

Especifique verdadero para devolver el recuento total de registros; en caso contrario falso. El valor predeterminado es false.

skip=[int] (optional)

Especifica el número de resultados de búsqueda a omitir.

top=[int] (optional)

Especifica el número de resultados de la búsqueda a recuperar. El valor predeterminado es de 50 y el valor máximo es de 100.

orderby=[list<string>] (optional)

Una lista de cláusulas separadas por comas donde cada cláusula consta de un nombre de columna seguido de 'asc' (ascendente, que es el predeterminado) o 'desc' (descendente). Esta lista especifica cómo ordenar los resultados en orden de precedencia. De forma predeterminada, los resultados se enumeran en orden descendente de puntuación de relevancia (@search.score). Para resultados con puntuaciones idénticas, el orden es aleatorio.

Para un conjunto de resultados que contienen varios tipos de tablas, la lista de cláusulas para orderby debe ser de aplicación global (por ejemplo, modifiedon, createdon, @search.score). Al especificar el parámetro orderby, se anula el predeterminado. Por ejemplo, para obtener resultados clasificados (en orden de precedencia) por relevancia, seguidos de los registros modificados más recientemente enumerados más arriba:

"orderby": ["@search.score desc", "modifiedon desc"]

Si la solicitud de consulta incluye un filtro para un tipo de tabla específico, orderby opcionalmente, puede especificar columnas específicas de la tabla.

searchmode= any | all (optional)

Especifica si alguno o todos los términos de búsqueda deben coincidir para contar el documento como una coincidencia. La opción predeterminada es 'cualquiera'.

Nota

El parámetro searchMode en una solicitud de consulta controla si un término con el operador NO tiene una función Y u O con otros términos de la consulta (asumiendo que no hay un operador + ni | en los otros términos).

El uso de searchMode=any aumenta la recuperación de consultas al incluir más resultados y, de forma predeterminada, se interpretará como "O NO". Por ejemplo, "wifi -lujo" encontrará coincidencia en los documentos que contengan el término "wifi" o en los que no contengan el término "lujo".

El uso de searchMode=all aumenta la precisión de las consultas al incluir menos resultados y, de forma predeterminada, se interpretará como "Y NO". Por ejemplo, "wifi -lujo" encontrará coincidencia en los documentos que contengan el término "wifi" y que no contengan el término "lujo".

searchtype= simple | full (optional)

El tipo de búsqueda especifica la sintaxis de una consulta de búsqueda. El uso de 'simple' selecciona la sintaxis de consulta simple y 'completo' selecciona la sintaxis de consulta de Lucene. El valor predeterminado es 'simple'.

La sintaxis de consulta simple admite la siguiente funcionalidad:

Funcionalidad Descripción
Operadores booleanos Operador Y; denotado mediante +
Operador O; denotado mediante |
Operador NO; denotado mediante -
Operadores de precedencia Un término de búsqueda "hotel+(wifi | lujo)" busca resultados que contengan el término "hotel" y "wifi" o "lujo" (o ambos).
Comodines Se admiten comodines finales. Por ejemplo, "Alp*" busca "alpino".
Coincidencias exactas Una consulta entre comillas " ".

La sintaxis de consulta de Lucene admite la siguiente funcionalidad:

Funcionalidad Descripción
Operadores booleanos Proporciona un conjunto ampliado en comparación con la sintaxis de consulta simple.
Operador Y; denotado mediante Y, +
Operador O; denotado mediante O, ||
Operador NO; denotado mediante NO, !, –
Operadores de precedencia La misma funcionalidad que la sintaxis de consulta simple.
Comodines Además de un comodín final, también admite un comodín inicial.
Comodín final: "alp*"
Comodín inicial: "/.*pine/"
Búsqueda borrosa Admite consultas mal escritas por hasta dos caracteres.
"Uniersty~" devuelve "Universidad"
"Azul~1" devuelve "azul", "añil"
Refuerzo de términos Sopesa términos específicos en una consulta de manera diferente.
"Rock^2 electrónico" devuevle resultados donde las coincidencias de "rock" son más importantes que las coincidencias con "electrónico".
Búsqueda por proximidad Devuelve resultados donde los términos están a una distancia de menos de x palabras entre sí, para obtener resultados más contextuales.
Por ejemplo, "hotel aeropuerto"~5 devuelve resultados en los que "aeropuerto" y "hotel" distan entre sí un máximo de cinco palabras, con lo que aumentan las posibilidades de encontrar un hotel cerca de un aeropuerto.
Búsqueda de expresión regular (regex) Por ejemplo, /[mh]otel/ coincide con "motel" u "hotel".

Nota

Los comodines se utilizan solo para completar palabras en la búsqueda de Dataverse. Como regla general, consultar con un comodín inicial llevará mucho más tiempo que sin no se usa, por lo que le recomendamos que explore formas alternativas de encontrar lo que está buscando y solo use los comodines iniciales con moderación, si es que lo hace.

Para usar cualquiera de los operadores de búsqueda como parte del texto de búsqueda, escape el carácter poniéndole el prefijo de sola barra invertida (\). Debe escapar los siguientes caracteres especiales: + - & | ! ( ) { } [ ] ^ " ~ * ? : \ /

Ejemplo: búsqueda básica

El siguiente ejemmplo es una solicitud de búsqueda básica y la respuesta.

Solicitud:

POST [Organization URI]/api/search/v1.0/query
{  
  "search": "maria",

  "facets": ["@search.entityname,count:100",  
    "account.primarycontactid,count:100",  
    "ownerid,count:100",  
    "modifiedon,values:2019-04-27T00:00:00|2020-03-27T00:00:00|2020-04-20T00:00:00|2020-04-27T00:00:00",
    "createdon,values:2019-04-27T00:00:00|2020-03-27T00:00:00|2020-04-20T00:00:00|2020-04-27T00:00:00"]
}

Respuesta:

{
    "value": [
        {
            "@search.score": 0.4547767,
            "@search.highlights": {
                "emailaddress1": [
                    "{crmhit}maria{/crmhit}@contoso.com"
                ],
                "firstname": [
                    "{crmhit}Maria{/crmhit}"
                ],
                "fullname": [
                    "{crmhit}Maria{/crmhit} Sullivan"
                ]
            },
            "@search.entityname": "contact",
            "@search.objectid": "16ffc791-d06d-4d8c-84ad-89a8978e14f3",
            "ownerid": "bb2500d1-5e6d-4953-8389-bfedf57e3857",
            "owneridname": "Corey Gray",
            "@search.ownerid.logicalname": "systemuser",
            "@search.objecttypecode": 2,
            "fullname": "Maria Sullivan",
            "entityimage_url": **null**,
            "createdon": "10/9/2020 5:27 PM",
            "modifiedon": "10/9/2020 5:27 PM",
            "emailaddress1": "maria@contoso.com",
            "address1_city": **"Seattle"**,
            "address1_telephone1": **"206-400-0200"**,
            "parentcustomerid": **null**,
            "parentcustomeridname": **null**,
            "telephone1": **"206-400-0300"**
        }
    ],
    "facets": {
        "account.primarycontactid": [],
        "ownerid": [
            {
                "Type": "Value",
                "Value": "31ca7d4b-701c-4ea9-8714-a89a5172106e",
                "OptionalValue": "Corey Gray",
                "Count": 1
            }
        ],
        "@search.entityname": [
            {
                "Type": "Value",
                "Value": "contact",
                "Count": 1
            }
        ],
        "modifiedon": [
            {
                "Type": "Range",
                "To": "4/27/2019 12:00 AM",
                "Count": 0
            },
            {
                "Type": "Range",
                "From": "4/27/2019 12:00 AM",
                "To": "3/27/2020 12:00 AM",
                "Count": 0
            },
            {
                "Type": "Range",
                "From": "3/27/2020 12:00 AM",
                "To": "4/20/2020 12:00 AM",
                "Count": 0
            },
            {
                "Type": "Range",
                "From": "4/20/2020 12:00 AM",
                "To": "4/27/2020 12:00 AM",
                "Count": 0
            },
            {
                "Type": "Range",
                "From": "4/27/2020 12:00 AM",
                "Count": 1
            }
        ],
        "createdon": [
            {
                "Type": "Range",
                "To": "4/27/2019 12:00 AM",
                "Count": 0
            },
            {
                "Type": "Range",
                "From": "4/27/2019 12:00 AM",
                "To": "3/27/2020 12:00 AM",
                "Count": 0
            },
            {
                "Type": "Range",
                "From": "3/27/2020 12:00 AM",
                "To": "4/20/2020 12:00 AM",
                "Count": 0
            },
            {
                "Type": "Range",
                "From": "4/20/2020 12:00 AM",
                "To": "4/27/2020 12:00 AM",
                "Count": 0
            },
            {
                "Type": "Range",
                "From": "4/27/2020 12:00 AM",
                "Count": 1
            }
        ]
    },
    "totalrecordcount": -1
}

Sugerencias

Las sugerencias proporcionan una lista de coincidencias para el valor del parámetro de búsqueda especificado, según la columna principal de un registro de tabla. Este comportamiento es diferente de una solicitud de búsqueda normal porque una búsqueda de sugerencia solo busca en la columna principal de un registro, mientras que las solicitudes de búsqueda buscan en todas las columnas de tabla habilitadas de Dataverse.

El ejemplo siugiente muestra la sintaxis mínima de una solicitud HTTP de búsqueda de sugerencia.

POST [Organization URI]/api/search/v1.0/suggest
{
  "search": "<text-fragment>"
}

El valor del parámetro de búsqueda proporciona una cadena de texto para que la búsqueda coincida y tiene una longitud mínima de tres caracteres.

Una respuesta de búsqueda con éxito devuelve un estado HTTP de 200 y contiene "valor", que es una lista que consta de texto o un documento donde el texto es la sugerencia con resaltados y el documento es un diccionario <string,object> del resultado de la sugerencia. De forma predeterminada, se devuelven cinco resultados. Los resaltados de la búsqueda indican coincidencias con el valor del parámetro de búsqueda y están contenidos en la etiqueta crmhit de la respuesta.

Además, puede agregar uno o más parámetros de consulta para personalizar cómo se realizará la búsqueda de sugerencias y qué resultados se devolverán. Los parámetros de consulta admitidos se indican en la siguiente sección.

Parámetros de consulta

usefuzzy=true | false (optional)

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

top=[int] (optional)

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

orderby=[List<string>] (optional)

Una lista de cláusulas separadas por comas donde cada cláusula consta de un nombre de columna seguido de 'asc' (ascendente) o 'desc' (descendente). Esta lista especifica cómo ordenar los resultados en orden de precedencia. De forma predeterminada, los resultados se enumeran en orden descendente de puntuación de relevancia (@search.score). Para resultados con puntuaciones idénticas, el orden es aleatorio.

Para un conjunto de resultados que contienen varios tipos de tablas, la lista de cláusulas para orderby debe ser de aplicación global (por ejemplo, modifiedon, createdon, @search.score). Al especificar el parámetro orderby, se anula el predeterminado. Por ejemplo, para obtener resultados clasificados (en orden de precedencia) por relevancia, seguidos de los registros modificados más recientemente enumerados más arriba:

"orderby": ["@search.score desc", "modifiedon desc"]

Si la solicitud de consulta incluye un filtro para un tipo de tabla específico, orderby opcionalmente, puede especificar columnas específicas de la tabla.

entities=[list<string>] (optional)

El valor predeterminado es buscar en todas las tablas configuradas de Dataverse–.

filter=[string] (optional)

Los filtros se aplican durante la búsqueda de datos y se especifican en la sintaxis estándar de OData.

Solicitud:

POST [Organization URI]/api/search/v1.0/suggest
{  
  "search": "mar",

  "filter": "account:modifiedon ge 2020-04-27T00:00:00,
    activities:regardingobjecttypecode eq 'account', annotation:objecttypecode eq 'account'"
}

Ejemplo: búsqueda de sugerencias

El siguiente es un ejemplo muestra una solicitud de búsqueda básica de sugerencias.

Solicitud:

POST [Organization URI]/api/search/v1.0/suggest
{  
  "search": "mar"
}

Respuesta:

{
    "value": [
        {
            "text": "{crmhit}Mar{/crmhit}ia Sullivan",
            "document": {
                "@search.objectid": "52a33850-8f0a-eb11-a813-000d3a8ab142",
                "@search.entityname": "contact",
                "@search.objecttypecode": 2,
                "fullname": "Maria Sullivan",
                "entityimage_url": **null**,
                "emailaddress1": "maria@contoso.com",
                "address1_city": **null**,
                "address1_telephone1": **null**,
                "parentcustomerid": **null**,
                "parentcustomeridname": **null**,
                "telephone1": **null**
            }
        }
    ]
}

Autocompletar

Proporciona autocompletado de la entrada del usuario. Autocompletar se basa en la columna principal de un registro de tabla.

La sintaxis mínima de una solicitud HTTP de búsqueda de Dataverse se muestra a continuación.

POST [Organization URI]/api/search/v1.0/autocomplete
{  
  "search": "<text-fragment>"
}

Una respuesta de búsqueda con éxito devuelve un estado HTTP de 200 y consta de "valor", que es una cadena.

Además, puede agregar uno o más parámetros de consulta para personalizar cómo se realizará la búsqueda y qué resultados se devuelven. Los parámetros de consulta admitidos se indican en la siguiente sección.

Parámetros de consulta

usefuzzy=true | false (optional)

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

entities=[list<string>] (optional)

El ámbito predeterminado busca en todas las tablas y columnas configuradas de búsqueda de Dataverse–.

filter=[string] (optional)

Los filtros se aplican durante la búsqueda de datos y se especifican en la sintaxis estándar de OData.

Solicitud:

POST [Organization URI]/api/search/v1.0/autocomplete
{  
  "search": "mar",

  "filter": "account:modifiedon ge 2020-04-27T00:00:00,
    activities:regardingobjecttypecode eq 'account', annotation:objecttypecode eq 'account'"
}

Ejemplo: búsqueda con autocompletado

El siguiente es un ejemplo muestra una solicitud de búsqueda básica con autocompletado.

Solicitud:

POST [Organization URI]/api/search/v1.0/autocomplete
{  
  "search": "mar"
}

Respuesta:

{
  "value": "{crmhit}maria{/crmhit}"
}

Consulte también

Configurar la búsqueda de Dataverse para mejorar los resultados de búsquedas y rendimiento
Comparar opciones de búsqueda en Microsoft Dataverse
Consultar datos utilizando la API web
Conectar con su entorno 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).