جب کئی شرائط کو ایک ارے کے اسی ایک عنصر پر لاگو ہونا ہو تو nested منتخب کریں۔ ورنہ مختلف عناصر کی اقدار اتفاقاً مل کر کوئری پوری کر سکتی ہیں۔
دو ویریئنٹس والی پروڈکٹ
سرخ رنگ میں L سائز کا کوئی ویریئنٹ نہیں ہے۔ لیکن عام object میپنگ ان فیلڈز کو متعدد رنگوں اور متعدد سائزوں میں ہموار کر دیتی ہے، جس سے یہ تعلق کھو جاتا ہے کہ کون سا سائز کس رنگ کا ہے۔ لہٰذا سرخ اور L کی کوئری غلط طور پر پروڈکٹ سے مل سکتی ہے۔
variants کو nested اور color/size کو keyword کے طور پر میپ کریں۔ پھر استعمال کریں:
{
"query": {
"nested": {
"path": "variants",
"query": {
"bool": {
"filter": [
{"term":{"variants.color":"red"}},
{"term":{"variants.size":"L"}}
]
}
}
}
}
}
اب دونوں فلٹرز ایک nested عنصر کے اندر چلتے ہیں، اس لیے مثال کی پروڈکٹ نہیں ملتی۔ L کو S سے بدلیں تو سرخ ویریئنٹ مل سکتا ہے۔
nested عناصر اضافی اندرونی دستاویزات اور زیادہ مہنگی کوئریز بناتے ہیں۔ جب ارے کے اندر تعلقات محفوظ رکھنا ضروری نہ ہو تو عام object آسان ہے۔ میپنگ کو درست قرار دینے سے پہلے جائز اور مختلف عناصر کو ملانے والے دونوں امتزاج آزمائیں۔
تفصیلی جوابات کے ساتھ IT انٹرویو سوالات کی ایک لائبریری — جونیئر سے سینئر تک۔
عطیہ دیں