Compartir por


Búsqueda de Dataverse (heredada)

Importante

Esta documentación es para el punto de conexión de la búsqueda heredada de Dataverse. Recomendamos que use la versión más reciente del punto de conexión de la búsqueda de Dataverse. Más información: Buscar registros de Dataverse

Para comenzar a utilizar la búsqueda heredada de Dataverse (versión 1.0), su aplicación emite una solicitud HTTP POST para iniciar una búsqueda de Dataverse. Al buscar datos, especifique las propiedades opcionales en el cuerpo de la solicitud para establecer criterios sobre cómo se buscarán los datos del entorno.

La búsqueda heredada de Dataverse tiene tres puntos de conexión que se pueden utilizar en Power Apps (make.powerapps.com):

  • Buscar: /api/search/v1.0/query proporciona una página de resultados de búsqueda.

  • Sugerencias: /api/search/v1.0/suggest proporciona sugerencias cuando el usuario introduce texto en un campo de formulario.

  • Autocompletar: /api/search/v1.0/autocomplete 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.

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 de la propiedad 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:

  • value: una lista de tablas. De forma predeterminada, se devuelven 50 resultados. Esta propiedad también incluye los resaltados de la búsqueda, que indican coincidencias con el valor de la propiedad search contenida 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).

  • facets: los resultados de la faceta.

Además, puede agregar una o más propiedades a la carga útil para personalizar cómo se realizará la búsqueda y qué resultados se devolverán. Las propiedades admitidas se indican en la siguiente sección.

Propiedades de la consulta

Las siguientes propiedades son compatibles con la búsqueda de Dataverse usando la consulta punto de conexión.

entities:[list<string>] (opcional)

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>] (opcional)

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] (opcional)

Los filtros se aplican durante la búsqueda de datos y se especifican en la sintaxis de estilo 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 (opcional)

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

skip:[int] (opcional)

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

top:[int] (opcional)

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>] (opcional)

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). Tenga en cuenta que especificar la propiedad orderby 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 (opcional)

Especifica si any o all los términos de búsqueda deben coincidir para contar el documento como una coincidencia. El valor predeterminado es any.

Nota

La propiedad searchMode en un cuerpo de 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 (opcional)

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 full 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 (\). Los caracteres especiales que requieren escape incluyen los siguientes: + - & | ! ( ) { } [ ] ^ " ~ * ? : \ /

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 de la propiedad de búsqueda especificada, según la columna principal de un registro de tabla. Esto 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 de la propiedad 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 de la propiedad de búsqueda y están contenidos en la etiqueta crmhit de la respuesta.

Además, puede agregar una o más propiedades al cuerpo de consulta para personalizar cómo se realizará la búsqueda de sugerencias y qué resultados se devolverán. Las propiedades admitidas se indican en la siguiente sección.

Sugerir propiedades

usefuzzy:true | false (opcional)

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

top:[int] (opcional)

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

orderby:[List<string>] (opcional)

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 será 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). Tenga en cuenta que especificar la propiedad orderby 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>] (opcional)

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

filter:[string] (opcional)

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'"
}

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 una o más propiedades al cuerpo de la solicitud para personalizar cómo se realizará la búsqueda y qué resultados se devolverán. Las propiedades admitidas se indican en la siguiente sección.

Propiedades de autocompletar

usefuzzy: true | false (opcional)

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

entities: [list<string>] (opcional)

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

filter: [string] (opcional)

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'"
}

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

Buscar registros de Dataverse
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

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