Referensi Template Pemetaan Resolver untuk OpenSearch - AWS AppSync

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Referensi Template Pemetaan Resolver untuk OpenSearch

catatan

Kami sekarang terutama mendukung runtime APPSYNC_JS dan dokumentasinya. Harap pertimbangkan untuk menggunakan runtime APPSYNC_JS dan panduannya di sini.

AWS AppSync Resolver untuk Amazon OpenSearch Service memungkinkan Anda menggunakan GraphQL untuk menyimpan dan mengambil data di domain Layanan yang ada di akun Anda. OpenSearch Penyelesai ini berfungsi dengan memungkinkan Anda memetakan permintaan GraphQL yang masuk ke dalam permintaan Layanan, lalu memetakan OpenSearch respons Layanan kembali ke GraphQL. OpenSearch Bagian ini menjelaskan template pemetaan untuk operasi OpenSearch Layanan yang didukung.

Templat Pemetaan Permintaan

Sebagian besar templat pemetaan permintaan OpenSearch Layanan memiliki struktur umum di mana hanya beberapa bagian yang berubah. Contoh berikut menjalankan pencarian terhadap domain OpenSearch Layanan, di mana dokumen diatur di bawah indeks yang disebutpost. Parameter pencarian didefinisikan di body bagian, dengan banyak klausa kueri umum yang didefinisikan di query bidang. Contoh ini akan mencari dokumen yang berisi "Nadia""Bailey", atau, atau keduanya, di author bidang dokumen:

{ "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" }} ] } } } } }

Templat Pemetaan Respon

Seperti sumber data lainnya, OpenSearch Layanan mengirimkan respons AWS AppSync yang perlu dikonversi ke GraphQL.

Sebagian besar kueri GraphQL mencari bidang _source dari respons Layanan. OpenSearch Karena Anda dapat melakukan pencarian untuk mengembalikan dokumen individual atau daftar dokumen, ada dua templat pemetaan respons umum yang digunakan dalam OpenSearch Layanan:

Daftar Hasil

[ #foreach($entry in $context.result.hits.hits) #if( $velocityCount > 1 ) , #end $utils.toJson($entry.get("_source")) #end ]

Barang Individu

$utils.toJson($context.result.get("_source"))

operationlapangan

(REQUEST Mapping Template saja)

Metode HTTP atau kata kerja (GET, POST, PUT, HEAD atau DELETE) yang AWS AppSync mengirim ke domain OpenSearch Layanan. Baik kunci dan nilainya harus berupa string.

"operation" : "PUT"

pathlapangan

(REQUEST Mapping Template saja)

Jalur pencarian untuk permintaan OpenSearch Layanan dari AWS AppSync. Ini membentuk URL untuk kata kerja HTTP operasi. Baik kunci dan nilainya harus berupa string.

"path" : "/<indexname>/_doc/<_id>" "path" : "/<indexname>/_doc" "path" : "/<indexname>/_search" "path" : "/<indexname>/_update/<_id>

Ketika template pemetaan dievaluasi, jalur ini dikirim sebagai bagian dari permintaan HTTP, termasuk domain OpenSearch Layanan. Misalnya, contoh sebelumnya mungkin diterjemahkan ke:

GET https://opensearch-domain-name.REGION.es.amazonaws.com/indexname/type/_search

paramslapangan

(REQUEST Mapping Template saja)

Digunakan untuk menentukan tindakan apa yang dilakukan penelusuran Anda, paling umum dengan menetapkan nilai kueri di dalam badan. Namun, ada beberapa kemampuan lain yang dapat dikonfigurasi, seperti pemformatan respons.

  • header

    Informasi header, sebagai pasangan kunci-nilai. Baik kunci dan nilainya harus berupa string. Sebagai contoh:

    "headers" : { "Content-Type" : "application/json" }
    catatan

    AWS AppSync saat ini hanya mendukung JSON sebagai file. Content-Type

  • QueryString

    Pasangan nilai kunci yang menentukan opsi umum, seperti pemformatan kode untuk respons JSON. Baik kunci dan nilainya harus berupa string. Misalnya, jika Anda ingin mendapatkan JSON yang diformat dengan cantik, Anda akan menggunakan:

    "queryString" : { "pretty" : "true" }
  • tubuh

    Ini adalah bagian utama dari permintaan Anda, memungkinkan AWS AppSync untuk membuat permintaan pencarian yang terbentuk dengan baik ke domain OpenSearch Layanan Anda. Kuncinya harus berupa string yang terdiri dari sebuah objek. Beberapa demonstrasi ditunjukkan di bawah ini.

Contoh 1

Kembalikan semua dokumen dengan kota yang cocok dengan “seattle”:

"body":{ "from":0, "size":50, "query" : { "match" : { "city" : "seattle" } } }

Contoh 2

Kembalikan semua dokumen yang cocok dengan “washington” sebagai kota atau negara bagian:

"body":{ "from":0, "size":50, "query" : { "multi_match" : { "query" : "washington", "fields" : ["city", "state"] } } }

Melewati Variabel

(REQUEST Mapping Template saja)

Anda juga dapat meneruskan variabel sebagai bagian dari evaluasi dalam pernyataan VTL. Misalnya, Anda memiliki kueri GraphQL seperti berikut ini:

query { searchForState(state: "washington"){ ... } }

Template pemetaan dapat mengambil status sebagai argumen:

"body":{ "from":0, "size":50, "query" : { "multi_match" : { "query" : "$context.arguments.state", "fields" : ["city", "state"] } } }

Untuk daftar utilitas yang dapat Anda sertakan dalam VTL, lihat Header Permintaan Akses.