Pilih nested apabila beberapa syarat mesti terpakai pada elemen array yang sama. Jika tidak, nilai daripada elemen berlainan boleh memenuhi kueri bersama-sama secara tidak sengaja.
Produk dengan dua varian
Tiada varian merah bersaiz L. Tetapi mapping object biasa meratakan field ini kepada beberapa warna dan saiz, lalu kehilangan hubungan saiz dengan warna. Oleh itu, kueri merah dan L boleh tersilap memadankan produk.
Petakan variants sebagai nested dan color/size sebagai keyword. Kemudian gunakan:
{
"query": {
"nested": {
"path": "variants",
"query": {
"bool": {
"filter": [
{"term":{"variants.color":"red"}},
{"term":{"variants.size":"L"}}
]
}
}
}
}
}
Kedua-dua filter kini berjalan dalam satu elemen nested, jadi produk contoh tidak sepadan. Tukar L kepada S dan varian merah boleh sepadan.
Elemen nested mencipta document dalaman tambahan dan kueri lebih mahal. Object biasa lebih ringkas apabila hubungan dalam array tidak perlu dikekalkan. Uji kombinasi sah dan rentas elemen sebelum memutuskan mapping berfungsi.
Pustaka soalan temu duga IT dengan jawapan terperinci — daripada Junior hingga Senior.
Derma