Tutorial: Membuat dan mencari dokumen di Amazon OpenSearch Service - OpenSearch Layanan Amazon

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, cURL, atau OpenSearch konsol Dasbor. Contoh ini mengasumsikan bahwa Anda menggunakan konsol pengembang di OpenSearch Dasbor. Jika Anda menggunakan alat yang berbeda, sesuaikan dengan memberikan URL lengkap dan kredensialnya, jika perlu.

Untuk menambahkan dokumen ke indeks

  1. 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/
  2. Masuk menggunakan nama pengguna dan kata sandi utama Anda.

  3. Buka panel navigasi kiri dan pilih Dev Tools.

  4. 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" }

    PUTPermintaan 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.

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: