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.