Elasticsearch - API Pencarian
API ini digunakan untuk mencari konten di Elasticsearch. Seorang pengguna dapat mencari dengan mengirimkan permintaan get dengan string kueri sebagai parameter atau mereka dapat mengirim kueri di badan pesan permintaan posting. Terutama semua APIS pencarian adalah multi-indeks, multi-tipe.
Multi-Indeks
Elasticsearch memungkinkan kita untuk mencari dokumen yang ada di semua indeks atau di beberapa indeks tertentu. Misalnya, jika kita perlu mencari semua dokumen dengan nama yang berisi pusat, kita dapat melakukan seperti yang ditunjukkan di sini -
GET /_all/_search?q=city:paprola
Saat menjalankan kode di atas, kami mendapatkan respons berikut -
{
"took" : 33,
"timed_out" : false,
"_shards" : {
"total" : 7,
"successful" : 7,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 0.9808292,
"hits" : [
{
"_index" : "schools",
"_type" : "school",
"_id" : "5",
"_score" : 0.9808292,
"_source" : {
"name" : "Central School",
"description" : "CBSE Affiliation",
"street" : "Nagan",
"city" : "paprola",
"state" : "HP",
"zip" : "176115",
"location" : [
31.8955385,
76.8380405
],
"fees" : 2200,
"tags" : [
"Senior Secondary",
"beautiful campus"
],
"rating" : "3.3"
}
}
]
}
}
Pencarian URI
Banyak parameter dapat diteruskan dalam operasi pencarian menggunakan Uniform Resource Identifier -
S.No | Parameter & Deskripsi |
---|---|
1 | Q Parameter ini digunakan untuk menentukan string kueri. |
2 | lenient Parameter ini digunakan untuk menentukan string kueri. Kesalahan berbasis format dapat diabaikan hanya dengan menyetel parameter ini ke true. Ini salah secara default. |
3 | fields Parameter ini digunakan untuk menentukan string kueri. |
4 | sort Kita bisa mendapatkan hasil yang diurutkan dengan menggunakan parameter ini, nilai yang mungkin untuk parameter ini adalah fieldName, fieldName: asc / fieldname: desc |
5 | timeout Kami dapat membatasi waktu pencarian dengan menggunakan parameter ini dan respons hanya berisi klik dalam waktu yang ditentukan. Secara default, tidak ada waktu tunggu. |
6 | terminate_after Kami dapat membatasi respons ke sejumlah dokumen tertentu untuk setiap pecahan, setelah mencapai permintaan yang akan dihentikan lebih awal. Secara default, tidak ada terminate_after. |
7 | from Mulai dari indeks klik hingga kembali. Default-nya 0. |
8 | size Ini menunjukkan jumlah klik untuk dikembalikan. Default-nya 10. |
Minta Pencarian Badan
Kita juga bisa menentukan query menggunakan query DSL di request body dan ada banyak contoh yang sudah diberikan di bab sebelumnya. Salah satu contohnya diberikan di sini -
POST /schools/_search
{
"query":{
"query_string":{
"query":"up"
}
}
}
Saat menjalankan kode di atas, kami mendapatkan respons berikut -
{
"took" : 11,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 0.47000363,
"hits" : [
{
"_index" : "schools",
"_type" : "school",
"_id" : "4",
"_score" : 0.47000363,
"_source" : {
"name" : "City Best School",
"description" : "ICSE",
"street" : "West End",
"city" : "Meerut",
"state" : "UP",
"zip" : "250002",
"location" : [
28.9926174,
77.692485
],
"fees" : 3500,
"tags" : [
"fully computerized"
],
"rating" : "4.5"
}
}
]
}
}