Elasticsearch sumber terbuka menyediakan serangkaian operasi API RESTful yang dapat Anda panggil dengan menjalankan perintah curl atau menggunakan Konsol Kibana. Topik ini menjelaskan cara menggunakan perintah curl dan memanggil operasi API untuk mengakses kluster Elasticsearch Alibaba Cloud, menanyakan informasi kluster, membuat indeks dan dokumen, serta mencari dokumen.
Informasi latar belakang
Anda dapat merujuk pada topik ini untuk memanggil operasi API dengan menjalankan perintah curl. Untuk informasi lebih lanjut tentang cara memanggil operasi API menggunakan Konsol Kibana, lihat Masuk ke Konsol Kibana.
Prasyarat
Akses kluster Elasticsearch
- Hubungkan ke instance ECS.Untuk informasi lebih lanjut, lihat Langkah 3: Hubungkan ke Instance ECS.Catatan Dalam contoh ini, pengguna biasa digunakan.
- Jalankan perintah berikut untuk mengakses kluster Elasticsearch Anda.Catatan Jika sistem menampilkan
curl command not found, Anda harus menjalankan perintahsudo yum install curluntuk menginstal cURL pada instance ECS.curl -u <user>:<password> http://<host>:<port>Variabel Deskripsi <user> Nama pengguna yang digunakan untuk mengakses kluster Elasticsearch Anda. Kami merekomendasikan agar Anda menggunakan nama pengguna selain elastic. Penting- Jika Anda menggunakan akun elastic untuk mengakses kluster Elasticsearch Anda dan kemudian mengatur ulang kata sandi akun tersebut, mungkin diperlukan waktu bagi kata sandi baru untuk berlaku. Selama periode ini, Anda tidak dapat menggunakan akun elastic untuk mengakses kluster. Oleh karena itu, kami merekomendasikan agar Anda tidak menggunakan akun elastic untuk mengakses kluster Elasticsearch. Anda dapat masuk ke Konsol Kibana, membuat pengguna dengan peran yang diperlukan, dan mengakses kluster Elasticsearch sebagai pengguna tersebut. Untuk informasi lebih lanjut, lihat Gunakan mekanisme RBAC yang disediakan oleh Elasticsearch X-Pack untuk mengimplementasikan kontrol akses.
- Jika versi kluster Elasticsearch Anda mencakup with_X-Pack, Anda harus menentukan nama pengguna dan kata sandi untuk mengakses kluster Elasticsearch.
<password> Kata sandi yang digunakan untuk mengakses kluster Elasticsearch Anda. Kata sandi akun elastic ditentukan saat Anda membuat kluster Elasticsearch. Jika Anda lupa kata sandi, Anda dapat mengatur ulang. Untuk informasi lebih lanjut tentang prosedur dan tindakan pencegahan untuk mengatur ulang kata sandi, lihat Atur ulang kata sandi akses untuk kluster Elasticsearch. <host> internal endpointTitik akhir internal kluster Elasticsearch Anda. Anda dapat memperoleh titik akhir internal dari halaman Informasi Dasar kluster Elasticsearch. <port> Nomor port yang digunakan untuk mengakses kluster Elasticsearch Anda. Nomor port default adalah 9200. Anda dapat memperoleh nomor port dari halaman Informasi Dasar kluster Elasticsearch. Contoh perintah:curl -u <user>:<password> http://es-cn-vxxxxx****.elasticsearch.aliyuncs.com:9200Jika perintah berhasil dijalankan, hasil seperti yang ditunjukkan pada gambar berikut dikembalikan.
Tanyakan informasi kluster
- Tanyakan status kesehatan kluster
curl -u <user>:<password> -XGET 'http://es-cn-vxxxxx****.elasticsearch.aliyuncs.com:9200/_cat/health?v'Jika perintah berhasil dijalankan, hasil seperti yang ditunjukkan pada gambar berikut dikembalikan.
- Tanyakan indeks dalam kluster
curl -u <user>:<password> -XGET 'http://es-cn-vxxxxx****.elasticsearch.aliyuncs.com:9200/_cat/indices?v'Jika perintah berhasil dijalankan, hasil seperti yang ditunjukkan pada gambar berikut dikembalikan.
Buat indeks dan dokumen
- Buat indeks
curl -u <user>:<password> -XPUT 'http://es-cn-vxxxxx****.elasticsearch.aliyuncs.com:9200/product_info'Pada contoh sebelumnya, indeks bernama product_info dibuat.
Jika perintah berhasil dijalankan, hasil seperti yang ditunjukkan pada gambar berikut dikembalikan.
- Konfigurasikan pemetaan untuk indeks
curl -u <user>:<password> -XPUT 'http://es-cn-vxxxxx****.elasticsearch.aliyuncs.com:9200/product_info/_doc/_mapping?include_type_name=true' -H 'Content-Type: application/json' -d ' { "_doc":{ "properties": { "productName": {"type": "text","analyzer": "ik_smart"}, "annual_rate":{"type":"keyword"}, "describe": {"type": "text","analyzer": "ik_smart"} } } }'Jika perintah berhasil dijalankan, hasil seperti yang ditunjukkan pada gambar berikut dikembalikan.
Pada contoh sebelumnya, tipe indeks product_info diatur ke _doc. Indeks tersebut berisi bidang productName, annual_rate, dan describe. Jika Anda menggunakan kluster Elasticsearch versi V7.0 atau lebih baru, tipe indeks dalam kluster harus _doc. Contoh ini juga mendefinisikan pemisah kata untuk bidang-bidang tersebut.
- Buat dokumen dan sisipkan data
- Buat dokumen tunggal
curl -u <user>:<password> -XPOST 'http://es-cn-vxxxxx****.elasticsearch.aliyuncs.com:9200/product_info/_doc/1?pretty' -H 'Content-Type: application/json' -d ' { "productName":"testpro", "annual_rate":"3,22%", "describe":"testpro" }'Jika perintah berhasil dijalankan, hasil seperti yang ditunjukkan pada gambar berikut dikembalikan.
Pada contoh sebelumnya, dokumen bernama 1 dibuat di indeks product_info dari tipe _doc, dan catatan data dimasukkan ke dalam dokumen tersebut.
- Buat beberapa dokumen
curl -u <user>:<password> -XPOST http://es-cn-vxxxxx****.elasticsearch.aliyuncs.com:9200/_bulk -H 'Content-Type: application/json' -d' { "index" : { "_index": "product_info", "_type" : "_doc", "_id" : "1" } } {"productName":"testpro","annual_rate":"3,22%","describe":"testpro"} { "index" : { "_index": "product_info", "_type" : "_doc", "_id" : "2" } } {"productName":"testpro1","annual_rate":"3,26%","describe":"testpro"}'Jika perintah berhasil dijalankan, hasil seperti yang ditunjukkan pada gambar berikut dikembalikan.
Pada contoh sebelumnya, dokumen bernama 1 dan 2 dibuat di indeks product_info dari tipe _doc, dan catatan data dimasukkan ke dalam masing-masing dokumen tersebut.
- Buat dokumen tunggal
Cari dokumen
curl -u <user>:<password> -XGET 'http://es-cn-vxxxxx****.elasticsearch.aliyuncs.com:9200/product_info/_doc/1?pretty'
Pada contoh sebelumnya, dokumen bernama 1 dicari.
Hapus indeks
curl -u <user>:<password> -XDELETE 'http://es-cn-vxxxxx****.elasticsearch.aliyuncs.com:9200/product_info'
Pada contoh sebelumnya, indeks bernama product_info dihapus.