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_eventsbuildscallbacksdata_elementsenvironmentsextension_packagesextensionshostslibrariespropertiesrule_componentsrules
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.) possono essere cercati come testo e 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
È possibile eseguire una ricerca effettuando 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"
]
}
}'
fromsizequeryOggetto 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 sonoANDeOR. 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.
sortasc per crescente, desc per decrescente).resource_typesRisposta
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:
iddelegate_descriptor_id::namesettingstype