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_events
builds
callbacks
data_elements
environments
extension_packages
extensions
hosts
libraries
properties
rule_components
rules
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.
- Campos de esquema para 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 solicitud de 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"
]
}
}'
from
size
query
Un 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 sonAND
yOR
. 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. -
range
Devuelve 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.
sort
asc
para ascendente, desc
para descendente).resource_types
Respuesta
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:
id
delegate_descriptor_id
::
name
settings
type