

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
<a name="quick-start"></a>

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
<a name="quick-start-prereqs"></a>

Tutorial ini memiliki prasyarat berikut ini:
+ Anda harus memiliki Akun AWS.
+ Anda harus memiliki domain OpenSearch Layanan aktif.

## Menambahkan dokumen ke indeks
<a name="quick-start-create"></a>

Untuk menambahkan dokumen ke indeks, Anda dapat menggunakan alat HTTP apa pun, seperti [Postman](https://www.getpostman.com/), 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/
   ```

1. Masuk menggunakan nama pengguna dan kata sandi utama Anda.

1. Buka panel navigasi kiri dan pilih **Dev Tools**.

1. 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
<a name="quick-start-id"></a>

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
<a name="quick-start-update"></a>

Untuk memperbarui dokumen, Anda menggunakan `POST` perintah HTTP dengan nomor ID.

Pertama, buat dokumen dengan ID`42`:

```
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 baru`classification`. 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
<a name="quick-start-bulk"></a>

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 (\$1n). 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 a`delete`. Tidak ada data yang mengikuti `delete` tindakan tersebut.

## Mencari dokumen
<a name="quick-start-search"></a>

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
<a name="quick-start-resources"></a>

Untuk informasi selengkapnya, lihat sumber daya berikut:
+ [Memulai OpenSearch Layanan Amazon](gsg.md)
+ [Pengindeksan data di Layanan Amazon OpenSearch](indexing.md)
+ [Mencari data di Amazon OpenSearch Service](searching.md)