Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
AWS AppSyncriferimento al modello di mappatura del resolver per OpenSearch
Nota
Ora supportiamo principalmente il runtime APPSYNC _JS e la relativa documentazione. Valuta la possibilità di utilizzare il runtime APPSYNC _JS e le relative guide qui.
Il AWS AppSync resolver per Amazon OpenSearch Service ti consente di utilizzare GraphQL per archiviare e recuperare dati nei domini di OpenSearch servizio esistenti nel tuo account. Questo resolver consente di mappare una richiesta GraphQL in OpenSearch entrata in una richiesta di servizio, quindi mappare la risposta OpenSearch del servizio a GraphQL. Questa sezione descrive i modelli di mappatura per le operazioni di servizio supportate. OpenSearch
Richiedi un modello di mappatura
La maggior parte dei modelli di mappatura delle richieste di OpenSearch assistenza ha una struttura comune in cui cambiano solo pochi elementi. L'esempio seguente esegue una ricerca in un dominio di OpenSearch servizio, in cui i documenti sono organizzati in base a un indice chiamatopost
. I parametri di ricerca sono definiti nella sezione body
, con molte delle clausole di query comuni definite nel campo query
. Questo esempio esegue la ricerca di documenti contenenti "Nadia"
o "Bailey"
, o entrambe le stringhe, nel campo author
di un documento:
{ "version":"2017-02-28", "operation":"GET", "path":"/post/_search", "params":{ "headers":{}, "queryString":{}, "body":{ "from":0, "size":50, "query" : { "bool" : { "should" : [ {"match" : { "author" : "Nadia" }}, {"match" : { "author" : "Bailey" }} ] } } } } }
Modello di mappatura delle risposte
Come con altre fonti di dati, OpenSearch Service invia una risposta AWS AppSync che deve essere convertita in GraphQL.
La maggior parte delle query GraphQL cerca il _source
campo in una OpenSearch risposta del servizio. Poiché è possibile eseguire ricerche per restituire un singolo documento o un elenco di documenti, in Service vengono utilizzati due modelli di mappatura delle risposte comuni: OpenSearch
Elenco di risultati
[ #foreach($entry in $context.result.hits.hits) #if( $velocityCount > 1 ) , #end $utils.toJson($entry.get("_source")) #end ]
Singola voce
$utils.toJson($context.result.get("_source"))
Campo operation
Nota
Questo vale solo per il modello di mappatura Request.
HTTPmetodo o verbo (GET, POSTPUT, HEAD oDELETE) che AWS AppSync invia al dominio del OpenSearch servizio. Sia la chiave che il valore devono essere stringhe.
"operation" : "PUT"
Campo path
Nota
Questo vale solo per il modello di mappatura Request.
Il percorso di ricerca per una richiesta OpenSearch di servizio da AWS AppSync. Questo forma un URL per il HTTP verbo dell'operazione. Sia la chiave che il valore devono essere stringhe.
"path" : "/<indexname>/_doc/<_id>" "path" : "/<indexname>/_doc" "path" : "/<indexname>/_search" "path" : "/<indexname>/_update/<_id>
Quando il modello di mappatura viene valutato, questo percorso viene inviato come parte della HTTP richiesta, incluso il dominio del OpenSearch servizio. L'esempio precedente potrebbe diventare:
GET https://opensearch-domain-name.REGION.es.amazonaws.com/indexname/type/_search
Campo params
Nota
Questo vale solo per il modello di mappatura Request.
Usato per specificare l'operazione eseguita dalla ricerca, in genere impostando il valore query all'interno di body. Ci sono tuttavia numerose altre funzionalità che è possibile configurare, ad esempio la formattazione delle risposte.
-
headers
Informazioni dell'intestazione, come coppie chiave-valore. Sia la chiave che il valore devono essere stringhe. Per esempio:
"headers" : { "Content-Type" : "application/json" }
Nota
AWS AppSync attualmente supporta solo JSON come
Content-Type
. -
queryString
Coppie chiave-valore che specificano opzioni comuni, come la formattazione del codice per le risposte. JSON Sia la chiave che il valore devono essere stringhe. Ad esempio, se vuoi avere una formattazione carina, dovresti usareJSON:
"queryString" : { "pretty" : "true" }
-
body
Questa è la parte principale della richiesta, che consente di AWS AppSync creare una richiesta di ricerca ben formata per il dominio del Servizio. OpenSearch La chiave deve essere una stringa costituita da un oggetto. Di seguito sono illustrati un paio di esempi.
Esempio 1
Restituisce tutti i documenti in cui la città corrisponde a "seattle":
"body":{ "from":0, "size":50, "query" : { "match" : { "city" : "seattle" } } }
Esempio 2
Restituisce tutti i documenti in cui la città o lo stato corrisponde a "washington":
"body":{ "from":0, "size":50, "query" : { "multi_match" : { "query" : "washington", "fields" : ["city", "state"] } } }
Passare variabili
Nota
Questo vale solo per il modello di mappatura Request.
È inoltre possibile passare variabili come parte della valutazione nell'VTListruzione. Supponi ad esempio di avere una query GraphQL come la seguente:
query { searchForState(state: "washington"){ ... } }
Il modello di mappatura può accettare lo stato come argomento:
"body":{ "from":0, "size":50, "query" : { "multi_match" : { "query" : "$context.arguments.state", "fields" : ["city", "state"] } } }
Per un elenco delle utilità che è possibile includere inVTL, vedere Access Request Headers.