Birden fazla koşul dizinin aynı elemanına uygulanacaksa nested seçin. Aksi halde farklı elemanların değerleri sorguyu yanlışlıkla birlikte sağlayabilir.
İki varyantlı ürün
Kırmızı L beden varyant yoktur. Ama normal object mapping alanları birden çok renk ve bedene düzleştirerek hangi bedenin hangi renge ait olduğunu kaybeder. Bu nedenle kırmızı ve L sorgusu ürünü yanlış eşleştirebilir.
variants alanını nested, color/size alanlarını keyword olarak eşleyin. Ardından:
{
"query": {
"nested": {
"path": "variants",
"query": {
"bool": {
"filter": [
{"term":{"variants.color":"red"}},
{"term":{"variants.size":"L"}}
]
}
}
}
}
}
İki filtre artık tek nested eleman içinde çalışır; örnek ürün eşleşmez. L'yi S yaparsanız kırmızı varyant eşleşebilir.
Nested elemanlar ek iç belgeler ve daha pahalı sorgular oluşturur. Dizi içi ilişkileri korumak gerekmiyorsa normal object daha basittir. Mapping'in çalıştığına karar vermeden geçerli ve farklı elemanları karıştıran kombinasyonları test edin.
Junior'dan Senior'a detaylı cevaplarla bir BT mülakat soruları kütüphanesi.
Bağış Yap