Endpoint “search”
L’endpoint /search
nell’API di Reactor consente di trovare le risorse che corrispondono ai criteri desiderati, espressi come query.
È possibile cercare i seguenti tipi di risorse API, utilizzando la stessa struttura di dati dei documenti basati sulle risorse restituiti nell’API:
audit_events
builds
callbacks
data_elements
environments
extension_packages
extensions
hosts
libraries
properties
rule_components
rules
L’ambito di tutte le query corrisponde all’azienda corrente e alle proprietà accessibili.
- I metadati non sono ricercabili e non vengono restituiti nei risultati della ricerca.
- I campi dello schema per i delegati del pacchetto di estensione (azioni, condizioni, ecc.) sono ricercabili come testo, ma non come struttura di dati nidificata.
- Le query di intervallo al momento supportano solo i numeri interi.
Per ulteriori informazioni su come utilizzare questa funzionalità, consulta la guida alla ricerca.
Introduzione
L’endpoint utilizzato in questa guida fa parte dell’API di Reactor. Prima di continuare, consulta la guida introduttiva per informazioni importanti su come eseguire l’autenticazione nell’API.
Eseguire una ricerca perform
Per eseguire una ricerca, devi eseguire una richiesta POST.
Formato API
POST /search
Richiesta
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
Oggetto che rappresenta la query di ricerca. Per ogni proprietà di questo oggetto, la chiave deve rappresentare un percorso di campo da considerare per la query; il valore deve essere un oggetto le cui sottoproprietà determinano per cosa viene eseguita la query.
Per ogni percorso di campo, puoi utilizzare le seguenti sottoproprietà:
-
exists
: restituisce true se il campo esiste nella risorsa. -
value
: restituisce true se il valore del campo corrisponde al valore di questa proprietà. -
value_operator
: logica booleana utilizzata per determinare come deve essere gestita una queryvalue
. I valori consentiti sonoAND
eOR
. Se non specificato, viene utilizzata la logicaAND
. Per ulteriori informazioni, consulta la sezione relativa alla logica dell’operatore dei valori -
range
: restituisce true se il valore del campo rientra in un intervallo numerico specifico. L’intervallo stesso è determinato dalle seguenti sottoproprietà:gt
: maggiore del valore specificato, escluso il valore specificato stesso.gte
: maggiore o uguale al valore specificato.lt
: minore del valore specificato, escluso il valore specificato stesso.lte
: minore o uguale al valore specificato.
sort
asc
per crescente, desc
per decrescente).resource_types
Risposta
In caso di esito positivo, la risposta restituisce un elenco di risorse corrispondenti per la query. Per informazioni dettagliate sulle modalità in cui l’API determina le corrispondenze per valori specifici, consulta la sezione dell’appendice sulle convenzioni di corrispondenza.
{
"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
}
}
Appendice
La sezione seguente contiene informazioni aggiuntive sull’utilizzo dell’endpoint /search
.
Logica dell’operatore del valore value-operator
I valori delle query di ricerca sono suddivisi nei diversi termini che devono essere rilevati nei documenti indicizzati. Tra ciascun termine, si presume una relazione AND
.
Quando utilizzi AND
come value_operator
, un valore di query My Rule Holiday Sale
viene interpretato come documento con un campo contenente My AND Rule AND Holiday AND Sale
.
Quando utilizzi OR
come value_operator
, un valore di query My Rule Holiday Sale
viene interpretato come documento con un campo contenente My OR Rule OR Holiday OR Sale
. Maggiore è il numero di termini corrispondenti rilevati, maggiore è il valore di match_score
. A causa della natura della corrispondenza parziale dei termini, quando nulla corrisponde esattamente al valore desiderato, è possibile ottenere un set di risultati per una corrispondenza molto basilare, ad esempio considerando solo alcuni dei caratteri che compongono i termini cercati.
Convenzioni per la corrispondenza nelle ricerche conventions
Nella ricerca viene esaminata la rilevanza di un documento rispetto alla query fornita. Il modo in cui i dati del documento vengono analizzati e indicizzati influisce direttamente su questo aspetto.
La tabella seguente suddivide le convenzioni di corrispondenza per i tipi di campo più comuni:
Nell’API sono disponibili convenzioni aggiuntive per campi specifici:
id
delegate_descriptor_id
::
name
settings
type