धेरै सर्त array को एउटै element मा लागू हुनुपर्छ भने nested छान्नुहोस्। नत्र फरक element का मानले मिलेर अनचाहिँदो रूपमा query पूरा गर्न सक्छन्।
दुई variant भएको उत्पादन
यहाँ रातो र size L भएको variant छैन। तर सामान्य object mapping ले यी field लाई धेरै रङ र धेरै size मा समतल पार्दा कुन size कुन रङको हो भन्ने सम्बन्ध हराउँछ। त्यसैले red र L खोज्ने query ले गलत रूपमा उत्पादन मिलाउन सक्छ।
variants लाई nested र color/size लाई keyword मा map गर्नुहोस्। त्यसपछि:
{
"query": {
"nested": {
"path": "variants",
"query": {
"bool": {
"filter": [
{"term":{"variants.color":"red"}},
{"term":{"variants.size":"L"}}
]
}
}
}
}
}
अब दुवै filter एउटै nested element भित्र चल्छन्, त्यसैले उदाहरणको उत्पादन मिल्दैन। L लाई S बनाए रातो variant मिल्न सक्छ।
Nested element ले थप internal document र महँगा query बनाउँछन्। Array भित्रका सम्बन्ध जोगाउनु आवश्यक नभए सामान्य object सरल हुन्छ। Mapping सही भयो भन्ने निर्णय गर्नुअघि मिल्नुपर्ने र फरक element बाट बनेका संयोजन दुवै जाँच्नुहोस्।
विस्तृत उत्तरसहित IT अन्तर्वार्ता प्रश्नहरूको पुस्तकालय — जुनियरदेखि सिनियरसम्म।
दान गर्नुहोस्