Extremo de la búsqueda
El extremo /search de la API de Reactor proporciona una forma de encontrar recursos que coincidan con los criterios deseados, expresados como una consulta.
Se pueden buscar los siguientes tipos de recursos de API, utilizando la misma estructura de datos que los documentos basados en recursos devueltos a través de la API:
audit_eventsbuildscallbacksdata_elementsenvironmentsextension_packagesextensionshostslibrariespropertiesrule_componentsrules
Todas las consultas tienen ámbitos de la empresa actual y propiedades accesibles.
- meta no se puede buscar y no se devuelve en los resultados de búsqueda.
- Los campos de esquema para los delegados de paquetes de extensiones (acciones, condiciones, etc.) se pueden buscar como texto, no como una estructura de datos anidada.
- Actualmente, las consultas de rango solo admiten números enteros.
Para obtener información detallada sobre cómo utilizar esta funcionalidad, consulte la guía de búsqueda.
Primeros pasos
El extremo utilizado en esta guía forma parte de la API de Reactor. Antes de continuar, consulte la guía de introducción para obtener información importante sobre cómo autenticarse en la API.
Realizar una búsqueda perform
Puede realizar una búsqueda realizando una petición POST.
Formato de API
POST /search
Solicitud
curl -X POST \
https://reactor.adobe.io/search \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H "Content-Type: application/vnd.api+json" \
-H 'Accept: application/vnd.api+json;revision=1' \
-d '{
"data": {
"from": 0,
"size": 25,
"query": {
"attributes.name": {
"value": "Performance"
},
"attributes.revision_number": {
"range": {
"lte": "2",
"gt": "0"
}
}
},
"sort": [
{
"attributes.revision_number": "desc"
}
],
"resource_types": [
"data_elements",
"rule_components"
]
}
}'
fromsizequeryUn objeto que representa la consulta de búsqueda. Para cada propiedad de este objeto, la clave debe representar una ruta de campo para la consulta y el valor debe ser un objeto cuyas subpropiedades determinen qué consultar.
Para cada ruta de campo, se pueden utilizar las siguientes subpropiedades:
-
exists: Devuelve true si el campo existe en el recurso. -
value: Devuelve true si el valor del campo coincide con el valor de esta propiedad. -
value_operator: La lógica booleana utilizada para determinar cómo se debe gestionar una consultavalue. Los valores permitidos sonANDyOR. Cuando se excluye, se asume la lógicaAND. Consulte la sección sobre la lógica del operador de valores para obtener más información. -
rangeDevuelve true si el valor del campo se encuentra dentro de un intervalo numérico específico. El propio intervalo está determinado por las siguientes subpropiedades:gt: Mayor que el valor proporcionado, no inclusivo.gte: Mayor o igual al valor proporcionado.lt: Menor que el valor proporcionado, no incluido.lte: Menor o igual que el valor proporcionado.
sortasc para ascendente, desc para descendente).resource_typesRespuesta
Una respuesta correcta devuelve una lista de recursos coincidentes para la consulta. Para obtener más información sobre cómo determina la API las coincidencias para valores específicos, consulte la sección del apéndice sobre convenciones coincidentes.
{
"data": [
{
"id": "DE5d11b3ed301d4ce99b530a5121e392b2",
"type": "data_elements",
"attributes": {
"created_at": "2020-12-14T17:36:09.045Z",
"deleted_at": null,
"dirty": true,
"enabled": true,
"name": "Performance Indicator",
"published": false,
"published_at": null,
"revision_number": 1,
"updated_at": "2020-12-14T17:36:09.045Z",
"clean_text": false,
"default_value": null,
"delegate_descriptor_id": "kessel-test::dataElements::dom-attribute",
"force_lower_case": false,
"review_status": "unsubmitted",
"storage_duration": null,
"settings": "{\"elementProperty\":\"html\",\"elementSelector\":\".target-element\"}"
},
"relationships": {
"libraries": {
"links": {
"related": "https://reactor.adobe.io/data_elements/DE5d11b3ed301d4ce99b530a5121e392b2/libraries"
}
},
"revisions": {
"links": {
"related": "https://reactor.adobe.io/data_elements/DE5d11b3ed301d4ce99b530a5121e392b2/revisions"
}
},
"notes": {
"links": {
"related": "https://reactor.adobe.io/data_elements/DE5d11b3ed301d4ce99b530a5121e392b2/notes"
}
},
"property": {
"links": {
"related": "https://reactor.adobe.io/data_elements/DE5d11b3ed301d4ce99b530a5121e392b2/property"
},
"data": {
"id": "PR97d92a379a5f48758947cdf44f607a0d",
"type": "properties"
}
},
"origin": {
"links": {
"related": "https://reactor.adobe.io/data_elements/DE5d11b3ed301d4ce99b530a5121e392b2/origin"
},
"data": {
"id": "DE5d11b3ed301d4ce99b530a5121e392b2",
"type": "data_elements"
}
},
"extension": {
"links": {
"related": "https://reactor.adobe.io/data_elements/DE5d11b3ed301d4ce99b530a5121e392b2/extension"
},
"data": {
"id": "EX0348d463358c4c89afe726245576f112",
"type": "extensions"
}
},
"updated_with_extension_package": {
"links": {
"related": "https://reactor.adobe.io/data_elements/DE5d11b3ed301d4ce99b530a5121e392b2/updated_with_extension_package"
},
"data": {
"id": "EP75db2452065b44e2b8a38ca883ce369a",
"type": "extension_packages"
}
},
"updated_with_extension": {
"links": {
"related": "https://reactor.adobe.io/data_elements/DE5d11b3ed301d4ce99b530a5121e392b2/updated_with_extension"
},
"data": {
"id": "EX1cc78b39339242da82a0e0752fa53375",
"type": "extensions"
}
}
},
"links": {
"property": "https://reactor.adobe.io/properties/PR97d92a379a5f48758947cdf44f607a0d",
"origin": "https://reactor.adobe.io/data_elements/DE5d11b3ed301d4ce99b530a5121e392b2",
"self": "https://reactor.adobe.io/data_elements/DE5d11b3ed301d4ce99b530a5121e392b2",
"extension": "https://reactor.adobe.io/extensions/EX0348d463358c4c89afe726245576f112"
},
"meta": {
"latest_revision_number": 1
}
}
],
"meta": {
"total_hits": 1
}
}
Apéndice
La siguiente sección contiene información adicional sobre el uso del extremo /search.
Lógica del operador de valor value-operator
Los valores de consulta de búsqueda se dividen en términos que coinciden con los documentos indexados. Entre cada término, se asume una relación AND.
Cuando se utiliza AND como value_operator, un valor de consulta de My Rule Holiday Sale se interpreta como documentos con un campo que contiene My AND Rule AND Holiday AND Sale.
Cuando se utiliza OR como value_operator, un valor de consulta de My Rule Holiday Sale se interpreta como documentos con un campo que contiene My OR Rule OR Holiday OR Sale. Cuantos más términos coincidan, más alto será el match_score. Debido a la naturaleza de la coincidencia de términos parciales, cuando nada coincide con el valor deseado, puede obtener un conjunto de resultados en el que el valor solo coincida en un nivel muy básico, como algunos caracteres de texto.
Convenciones de coincidencia conventions
La búsqueda consiste en responder a la relevancia de un documento para una consulta suministrada. La forma en que se analizan y se indexan los datos del documento afecta directamente a esto.
La siguiente tabla desglosa las convenciones de coincidencia para los tipos de campo comunes:
Existen convenciones adicionales para campos específicos que aparecen en la API:
iddelegate_descriptor_id::namesettingstype