Compartir a través de


Búsqueda de Dataverse (versión antigua)

Importante

Esta documentación es para el punto de conexión de búsqueda heredado de Dataverse. Te recomendamos que utilices la interfaz de búsqueda más reciente de Dataverse. Más información: Búsqueda de registros de Dataverse

Para empezar a usar la búsqueda heredada de Dataverse (versión 1.0), la aplicación emite una solicitud HTTP POST para iniciar una búsqueda de Dataverse. Al buscar datos, especifique propiedades opcionales en el cuerpo de la solicitud para establecer criterios para buscar los datos del entorno.

La búsqueda heredada de Dataverse tiene tres puntos de conexión que se pueden usar 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 a medida que el usuario escribe 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.

En las secciones siguientes se describe cómo acceder a las funcionalidades de búsqueda mencionadas anteriormente desde el código de la aplicación.

En el ejemplo siguiente se 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 search valor de propiedad 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 resaltados de búsqueda, que indican coincidencias con el valor de propiedad search contenido en la crmhit etiqueta de la respuesta.

  • totalrecordcount: el recuento total de resultados (de tipo largo). Se devuelve un valor de -1 si returntotalrecordcount se establece en false (valor predeterminado).

  • facets: los resultados de la faceta.

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

Propiedades de consulta

Las siguientes propiedades se admiten con la búsqueda de Dataverse mediante el punto de conexión de consulta.

entities:[list<string>] (opcional)

La lista de tablas predeterminada busca en todas las tablas y columnas configuradas para 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 al buscar datos y se especifican en una 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 true para devolver el recuento total de registros; de lo contrario , false. El valor predeterminado es false.

skip:[int] (opcional)

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

top:[int] (opcional)

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

orderby:[list<string>] (opcional)

Lista de cláusulas separadas por comas en las que cada cláusula consta de un nombre de columna seguido de "asc" (ascendente, que es el valor predeterminado) o "desc" (descendente). Esta lista especifica cómo ordenar los resultados en orden de prioridad. De forma predeterminada, los resultados se muestran en orden descendente de puntuación de relevancia (@search.score). Para los resultados con puntuaciones idénticas, la ordenación es aleatoria.

Para un conjunto de resultados que contienen varios tipos de tabla, la lista de cláusulas para orderby debe ser aplicable globalmente (por ejemplo, modifiedon, createdon, @search.score). Tenga en cuenta que especificar la orderby propiedad invalida el valor predeterminado. Por ejemplo, para obtener resultados clasificados (en orden de prioridad) 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 puede especificar opcionalmente 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 del cuerpo de una solicitud de consulta controla si un término con el operador NO se combina con AND o OR con otros términos de la consulta, suponiendo que no haya ningún operador + o | en los demás términos.

El uso "searchMode": "any" de aumenta la recuperación de consultas mediante la inclusión de más resultados y, de forma predeterminada, se interpretará como "OR NOT". Por ejemplo, "wifi -luxury" coincidirá con documentos que contengan el término "wifi" o aquellos que no contengan el término "lujo".

El uso "searchMode": "all" de aumenta la precisión de las consultas mediante la inclusión de menos resultados y, de forma predeterminada, se interpretará como "AND NOT". Por ejemplo, "wifi -luxury" coincidirá con los documentos que contienen el término "wifi" y no contienen 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 NOT; denotado mediante -
Operadores de precedencia Término de búsqueda "hotel+(wifi | luxury)" busca resultados que contengan el término "hotel" y "wifi" o "lujo" (o ambos).
Caracteres comodín Se admiten comodines finales. Por ejemplo, "Alp*" busca "alpine".
Coincidencias exactas Una consulta entre comillas " ".

La sintaxis de consulta de Lucene admite la siguiente funcionalidad:

Funcionalidad Descripción
Operadores booleanos Proporciona un conjunto expandido en comparación con la sintaxis de consulta simple.
Operador AND; denotado por AND, +
Operador OR; representado por OR, ||
Operador NO; denotado mediante NO, !, –
Operadores de precedencia La misma funcionalidad que la sintaxis de consulta simple.
Caracteres comodín Además de un comodín final, también admite un comodín inicial.
Comodín final: "alp*"
Comodín inicial: "/.*pine/"
Búsqueda aproximada Admite consultas mal escritas por hasta dos caracteres.
Al introducir "Uniersty~", el resultado es "Universidad"
"Azul1~1" devuelve "azul", "añil"
Refuerzo de términos Pesa términos específicos en una consulta de forma diferente.
"Rock^2 electronic" devuelve resultados donde las coincidencias con "rock" son más importantes que las coincidencias con "electrónica".
Búsqueda por proximidad Devuelve resultados en los que los términos están dentro de x palabras entre sí, para obtener resultados más contextuales.
Por ejemplo, "airport hotel"~5 devuelve resultados donde "airport" y "hotel" están dentro de cinco palabras entre sí, lo que aumenta las posibilidades de encontrar un hotel situado cerca de un aeropuerto.
Búsqueda de expresiones regulares (regex) Por ejemplo, /[mh]otel/ coincide con "motel" o "hotel".

Nota:

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

El ejemplo siguiente es una solicitud y respuesta de búsqueda básicas.

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": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
            "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 con el valor de propiedad de búsqueda especificado, en función de la columna principal de un registro de tabla. Esto es diferente de una solicitud de búsqueda normal porque una búsqueda de sugerencias solo busca a través de la columna principal de un registro, mientras que las solicitudes de búsqueda buscan en todas las columnas de tabla habilitadas para búsqueda de Dataverse.

En el ejemplo siguiente se muestra la sintaxis mínima de una solicitud HTTP de búsqueda de sugerencias.

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 correcta 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 sugerencias indican coincidencias con el valor de la propiedad de búsqueda y se encuentran dentro de la etiqueta crmhit en la respuesta.

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

Sugerir propiedades

usefuzzy:true | false (opcional)

Utiliza la búsqueda aproximada para ayudar con 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)

Lista de expresiones separadas por comas en las que cada expresión consta de un nombre de columna seguido de asc (ascendente) o de desc (descendente). Esta lista especifica cómo ordenar los resultados en orden de prioridad. De forma predeterminada, los resultados se muestran en orden descendente de puntuación de relevancia (@search.score). Para los resultados con puntuaciones idénticas, la ordenación será aleatoria.

Para un conjunto de resultados que contienen varios tipos de tabla, la lista de cláusulas para orderby debe ser aplicable globalmente (por ejemplo, modifiedon, createdon, @search.score). Tenga en cuenta que especificar la orderby propiedad invalida el valor predeterminado. Por ejemplo, para obtener resultados clasificados (en orden de prioridad) 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 puede especificar opcionalmente columnas específicas de la tabla.

entities:[list<string>] (opcional)

El valor predeterminado es buscar en todas las tablas configuradas para búsqueda de Dataverse.

filter:[string] (opcional)

Los filtros se aplican al buscar 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'"
}

En el ejemplo siguiente se muestra una solicitud de búsqueda de sugerencias básica.

Solicitud:

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

Respuesta:

{
    "value": [
        {
            "text": "{crmhit}Mar{/crmhit}ia Sullivan",
            "document": {
                "@search.objectid": "bbbbbbbb-1111-2222-3333-cccccccccccc",
                "@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 es la siguiente.

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

Una respuesta de búsqueda correcta devuelve un estado HTTP de 200 y consta de "value", que es una cadena.

Además, puede agregar una o varias propiedades al cuerpo de la solicitud para personalizar cómo se va a realizar la búsqueda y qué resultados se devuelven. Las propiedades compatibles se indican en la sección siguiente.

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 es buscar en todas las tablas y columnas configuradas para la búsqueda de Dataverse.

filter: [string] (opcional)

Los filtros se aplican al buscar 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'"
}

En el ejemplo siguiente se muestra una solicitud de autocompletar básica.

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 autocompletada de Dataverse
Estadísticas y estado de búsqueda de Dataverse