Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial: Membuat dan mencari dokumen di Amazon OpenSearch Service
Dalam tutorial ini, Anda belajar cara membuat dan mencari dokumen di Amazon OpenSearch Service. Anda menambahkan data ke indeks dalam bentuk dokumen JSON. OpenSearch Layanan membuat indeks di sekitar dokumen pertama yang Anda tambahkan.
Tutorial ini menjelaskan cara membuat permintaan HTTP untuk membuat dokumen, secara otomatis menghasilkan ID untuk dokumen, dan melakukan pencarian dasar dan lanjutan pada dokumen Anda.
catatan
Tutorial ini menggunakan domain dengan akses terbuka. Untuk tingkat keamanan tertinggi, kami sarankan Anda menempatkan domain Anda di dalam virtual private cloud (VPC).
Prasyarat
Tutorial ini memiliki prasyarat berikut ini:
-
Anda harus memiliki Akun AWS.
-
Anda harus memiliki domain OpenSearch Layanan aktif.
Menambahkan dokumen ke indeks
Untuk menambahkan dokumen ke indeks, Anda dapat menggunakan alat HTTP apa pun, seperti Postman
Untuk menambahkan dokumen ke indeks
-
Arahkan ke URL OpenSearch Dasbor untuk domain Anda. Anda dapat menemukan URL di dasbor domain di konsol OpenSearch Layanan. URL mengikuti format ini:
domain-endpoint
/_dashboards/ -
Masuk menggunakan nama pengguna dan kata sandi utama Anda.
-
Buka panel navigasi kiri dan pilih Dev Tools.
-
Kata kerja HTTP untuk membuat sumber daya baru adalah PUT, yang Anda gunakan untuk membuat dokumen dan indeks baru. Masukkan perintah berikut di konsol:
PUT fruit/_doc/1 { "name":"strawberry", "color":"red" }
PUT
Permintaan membuat indeks bernama buah dan menambahkan satu dokumen ke indeks dengan ID 1. Ini menghasilkan respons berikut:{ "_index" : "fruit", "_type" : "_doc", "_id" : "1", "_version" : 1, "result" : "created", "_shards" : { "total" : 2, "successful" : 2, "failed" : 0 }, "_seq_no" : 0, "_primary_term" : 1 }
Membuat dihasilkan secara otomatis IDs
OpenSearch Layanan dapat secara otomatis menghasilkan ID untuk dokumen Anda. Perintah untuk menghasilkan IDs menggunakan permintaan POST alih-alih permintaan PUT, dan tidak memerlukan ID dokumen (dibandingkan dengan permintaan sebelumnya).
Masukkan permintaan berikut di konsol pengembang:
POST veggies/_doc { "name":"beet", "color":"red", "classification":"root" }
Permintaan ini membuat indeks bernama sayuran dan menambahkan dokumen ke indeks. Ini menghasilkan respons berikut:
{ "_index" : "veggies", "_type" : "_doc", "_id" : "3WgyS4IB5DLqbRIvLxtF", "_version" : 1, "result" : "created", "_shards" : { "total" : 2, "successful" : 2, "failed" : 0 }, "_seq_no" : 0, "_primary_term" : 1 }
Perhatikan bahwa _id
bidang tambahan dalam respons, yang menunjukkan bahwa ID dibuat secara otomatis.
catatan
Anda tidak memberikan apa pun setelah _doc
di URL, di mana ID biasanya pergi. Karena Anda membuat dokumen dengan ID yang dihasilkan, Anda belum memberikannya. Itu dicadangkan untuk pembaruan.
Memperbarui dokumen dengan perintah POST
Untuk memperbarui dokumen, Anda menggunakan POST
perintah HTTP dengan nomor ID.
Pertama, buat dokumen dengan ID42
:
POST fruits/_doc/42 { "name":"banana", "color":"yellow" }
Kemudian gunakan ID itu untuk memperbarui dokumen:
POST fruits/_doc/42 { "name":"banana", "color":"yellow", "classification":"berries" }
Perintah ini memperbarui dokumen dengan bidang baruclassification
. Ini menghasilkan respons berikut:
{ "_index" : "fruits", "_type" : "_doc", "_id" : "42", "_version" : 2, "result" : "updated", "_shards" : { "total" : 2, "successful" : 2, "failed" : 0 }, "_seq_no" : 1, "_primary_term" : 1 }
catatan
Jika Anda mencoba memperbarui dokumen yang tidak ada, OpenSearch Layanan membuat dokumen.
Melakukan tindakan massal
Anda dapat menggunakan operasi POST _bulk
API untuk melakukan beberapa tindakan pada satu atau beberapa indeks dalam satu permintaan. Perintah tindakan massal mengambil format berikut:
POST /_bulk <action_meta>\n <action_data>\n <action_meta>\n <action_data>\n
Setiap tindakan membutuhkan dua baris JSON. Pertama, Anda memberikan deskripsi tindakan atau metadata. Pada baris berikutnya, Anda memberikan data. Setiap bagian dipisahkan oleh baris baru (\n). Deskripsi tindakan untuk sisipan mungkin terlihat seperti ini:
{ "create" : { "_index" : "veggies", "_type" : "_doc", "_id" : "7" } }
Dan baris berikutnya yang berisi data mungkin terlihat seperti ini:
{ "name":"kale", "color":"green", "classification":"leafy-green" }
Secara keseluruhan, metadata dan data mewakili satu tindakan dalam operasi massal. Anda dapat melakukan banyak operasi dalam satu permintaan, seperti ini:
POST /_bulk { "create" : { "_index" : "veggies", "_id" : "35" } } { "name":"kale", "color":"green", "classification":"leafy-green" } { "create" : { "_index" : "veggies", "_id" : "36" } } { "name":"spinach", "color":"green", "classification":"leafy-green" } { "create" : { "_index" : "veggies", "_id" : "37" } } { "name":"arugula", "color":"green", "classification":"leafy-green" } { "create" : { "_index" : "veggies", "_id" : "38" } } { "name":"endive", "color":"green", "classification":"leafy-green" } { "create" : { "_index" : "veggies", "_id" : "39" } } { "name":"lettuce", "color":"green", "classification":"leafy-green" } { "delete" : { "_index" : "vegetables", "_id" : "1" } }
Perhatikan bahwa tindakan terakhir adalah adelete
. Tidak ada data yang mengikuti delete
tindakan tersebut.
Mencari dokumen
Sekarang data ada di cluster Anda, Anda dapat mencarinya. Misalnya, Anda mungkin ingin mencari semua sayuran akar, atau menghitung semua sayuran berdaun hijau, atau menemukan jumlah kesalahan yang dicatat per jam.
Pencarian dasar
Pencarian dasar terlihat seperti ini:
GET veggies/_search?q=name:l*
Permintaan menghasilkan respons JSON yang berisi dokumen selada.
Pencarian lanjutan
Anda dapat melakukan pencarian lebih lanjut dengan menyediakan opsi kueri sebagai JSON di badan permintaan:
GET veggies/_search { "query": { "term": { "name": "lettuce" } } }
Contoh ini juga menghasilkan respons JSON dengan dokumen selada.
Penyortiran
Anda dapat melakukan lebih banyak jenis kueri ini menggunakan penyortiran. Pertama, Anda perlu membuat ulang indeks, karena pemetaan bidang otomatis memilih jenis yang tidak dapat diurutkan secara default. Kirim permintaan berikut untuk menghapus dan membuat ulang indeks:
DELETE /veggies PUT /veggies { "mappings":{ "properties":{ "name":{ "type":"keyword" }, "color":{ "type":"keyword" }, "classification":{ "type":"keyword" } } } }
Kemudian isi kembali indeks dengan data:
POST /_bulk { "create" : { "_index" : "veggies", "_id" : "7" } } { "name":"kale", "color":"green", "classification":"leafy-green" } { "create" : { "_index" : "veggies", "_id" : "8" } } { "name":"spinach", "color":"green", "classification":"leafy-green" } { "create" : { "_index" : "veggies", "_id" : "9" } } { "name":"arugula", "color":"green", "classification":"leafy-green" } { "create" : { "_index" : "veggies", "_id" : "10" } } { "name":"endive", "color":"green", "classification":"leafy-green" } { "create" : { "_index" : "veggies", "_id" : "11" } } { "name":"lettuce", "color":"green", "classification":"leafy-green" }
Sekarang Anda dapat mencari dengan semacam. Permintaan ini menambahkan pengurutan naik berdasarkan klasifikasi:
GET veggies/_search { "query" : { "term": { "color": "green" } }, "sort" : [ "classification" ] }
Sumber daya terkait
Untuk informasi selengkapnya, lihat sumber daya berikut: