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"
            }
         }
      ]
   }
}