Array मधील त्याच घटकावर अनेक अटी जुळणे आवश्यक असेल तर nested वापरा. सामान्य object mapping मध्ये वेगवेगळ्या घटकांतील मूल्ये एकत्र जुळू शकतात.
दोन variants असलेले उत्पादन
लाल रंगाचा L आकाराचा variant येथे नाही. Object mapping array flatten केल्यावर रंग आणि आकारातील संबंध हरवतो. त्यामुळे लाल आणि L अशी query चुकीने उत्पादन जुळवू शकते.
variants ला nested आणि color व size ला keyword म्हणून map करा. मग:
{
"query": {
"nested": {
"path": "variants",
"query": {
"bool": {
"filter": [
{"term":{"variants.color":"red"}},
{"term":{"variants.size":"L"}}
]
}
}
}
}
}
दोन्ही filters एकाच nested घटकाला लागू होतात, म्हणून या उत्पादनाशी query जुळत नाही. L च्या जागी S दिल्यास लाल variant जुळतो.
Nested मुळे अतिरिक्त internal documents आणि अधिक महाग queries निर्माण होतात. Array मधील संबंध राखण्याची गरज नसलेल्या साध्या माहितीला सामान्य object पुरेसा असतो. वैध जोड्या आणि वेगवेगळ्या घटकांतून तयार होणाऱ्या चुकीच्या जोड्या अशा दोन्ही चाचण्या करा.
सविस्तर उत्तरांसह IT मुलाखत प्रश्नांचे ग्रंथालय — Junior पासून Senior पर्यंत.
देणगी द्या