Pilih nested ketika beberapa kondisi harus berlaku pada elemen array yang sama. Jika tidak, nilai dari elemen berbeda bisa tanpa sengaja memenuhi kueri bersama-sama.
Produk dengan dua varian
Tidak ada varian merah ukuran L. Tetapi mapping object biasa meratakan field ini menjadi beberapa warna dan ukuran, sehingga hubungan ukuran dengan warna hilang. Karena itu, kueri merah dan L bisa salah mencocokkan produk.
Petakan variants sebagai nested dan color/size sebagai keyword. Lalu gunakan:
{
"query": {
"nested": {
"path": "variants",
"query": {
"bool": {
"filter": [
{"term":{"variants.color":"red"}},
{"term":{"variants.size":"L"}}
]
}
}
}
}
}
Kedua filter sekarang berjalan dalam satu elemen nested, sehingga produk contoh tidak cocok. Ubah L menjadi S dan varian merah dapat cocok.
Elemen nested membuat document internal tambahan dan kueri yang lebih mahal. Object biasa lebih sederhana ketika hubungan dalam array tidak perlu dipertahankan. Uji kombinasi valid maupun lintas elemen sebelum menyimpulkan mapping bekerja.
Perpustakaan pertanyaan wawancara IT dengan jawaban mendetail — dari Junior hingga Senior.
Donasi