Pertanyaan Carian Asas dalam Elasticsearch: Panduan Komprehensif

Pertanyaan berasaskan kata kunci(Match Query)

Pertanyaan Padanan digunakan untuk mencari dokumen yang mengandungi kata kunci tertentu. Ia akan mengembalikan dokumen yang mempunyai sekurang-kurangnya satu kata kunci yang sepadan.

Contoh: Cari produk dengan nama yang mengandungi kata kunci laptop  dalam products Index.

GET /products/_search  
{  
  "query": {  
    "match": {  
      "name": "laptop"  
    }  
  }  
}  

 

Mesti Mengandungi Semua Kata Kunci(Match Phrase Query)

Pertanyaan Frasa Padanan memerlukan semua kata kunci dalam pertanyaan untuk muncul berturut-turut dan dalam susunan yang betul dalam teks dokumen.

Contoh: Cari produk dengan penerangan yang mengandungi frasa HP laptop.

GET /products/_search  
{  
  "query": {  
    "match_phrase": {  
      "description": "HP laptop"  
    }  
  }  
}  

 

Mesti Mengandungi Keseluruhan Awalan Frasa(Match Phrase Prefix Query)

Pertanyaan Awalan Frasa Padanan adalah serupa dengan Frasa Padanan, tetapi ia membenarkan padanan separa kata kunci terakhir.

Contoh: Cari produk dengan penerangan bermula dengan laptop.

GET /products/_search  
{  
  "query": {  
    "match_phrase_prefix": {  
      "description": "laptop"  
    }  
  }  
}  

 

Pertanyaan berasaskan istilah(Pertanyaan Istilah)

Pertanyaan Istilah digunakan untuk mencari dokumen dengan medan yang mempunyai nilai tepat seperti yang ditentukan.

Contoh: Cari produk dengan category medan yang mempunyai nilai laptop.

GET /products/_search  
{  
  "query": {  
    "term": {  
      "category": "laptop"  
    }  
  }  
}  

 

Pertanyaan berasaskan julat(Range Query)

Pertanyaan Julat membantu mencari dokumen dengan nilai medan dalam julat yang ditentukan.

Contoh: Cari produk dengan harga antara 500 dan 1000.

GET /products/_search  
{  
  "query": {  
    "range": {  
      "price": {  
        "gte": 500,  
        "lte": 1000  
      }  
    }  
  }  
}  

 

Pertanyaan Tahap Istilah

Pertanyaan Tahap Istilah membenarkan carian untuk dokumen berdasarkan syarat khusus seperti pertanyaan Tepat, Awalan, Julat, Kad Liar dan Fuzzy.

Contoh: Cari produk dengan nama bermula dengan laptop dan harga antara 500 dan 1000.

GET /products/_search  
{  
  "query": {  
    "bool": {  
      "must": [  
        {  
          "prefix": {  
            "name": "laptop"  
          }  
        },  
        {  
          "range": {  
            "price": {  
              "gte": 500,  
              "lte": 1000  
            }  
          }  
        }  
      ]  
    }  
  }  
}  

 

Full-Text Pertanyaan

Full-Text pertanyaan membenarkan mencari medan teks menggunakan algoritma analisis teks untuk mencari perkataan atau sinonim yang serupa.

Contoh: Cari produk dengan penerangan yang mengandungi sama ada computer  atau laptop.

GET /products/_search  
{  
  "query": {  
    "match": {  
      "description": "computer laptop"  
    }  
  }  
}  

 

Pertanyaan Boolean

Boolean pertanyaan membenarkan menggabungkan berbilang sub-pertanyaan dengan keadaan carian yang pelbagai, seperti mesti mengandungi semua, mesti mengandungi sekurang-kurangnya satu, atau tidak boleh mengandungi, untuk mencapai hasil carian yang tepat.

Contoh: Cari produk dengan category makhluk laptop  dan harga antara 500 dan 1000.

GET /products/_search  
{  
  "query": {  
    "bool": {  
      "must": [  
        {  
          "term": {  
            "category": "laptop"  
          }  
        },  
        {  
          "range": {  
            "price": {  
              "gte": 500,  
              "lte": 1000  
            }  
          }  
        }  
      ]  
    }  
  }  
}  

 

Ini adalah pertanyaan carian asas dalam Elasticsearch, bersama-sama dengan contoh yang digambarkan untuk setiap jenis pertanyaan. Apabila menggunakan Elasticsearch, anda boleh menggabungkan pertanyaan ini untuk mencari data secara fleksibel dan cekap.