একাধিক শর্ত array-এর একই element-এ প্রযোজ্য হতে হলে nested বেছে নিন। অন্যথায় ভিন্ন element-এর মান একসঙ্গে ভুলভাবে query পূরণ করতে পারে।
দুটি variant-সহ পণ্য
এখানে লাল রঙের L মাপের variant নেই। কিন্তু সাধারণ object mapping field-গুলো একাধিক রং ও মাপে সমতল করে, কোন মাপ কোন রঙের তা হারায়। ফলে লাল ও 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 অতিরিক্ত অভ্যন্তরীণ document ও বেশি ব্যয়বহুল query তৈরি করে। Array-এর ভেতরের সম্পর্ক ধরে রাখা দরকার না হলে সাধারণ object সহজতর। Mapping কাজ করছে বলার আগে বৈধ এবং ভিন্ন element মেশানো উভয় সমন্বয় পরীক্ষা করুন।
বিস্তারিত উত্তরসহ IT ইন্টারভিউ প্রশ্নের একটি লাইব্রেরি — জুনিয়র থেকে সিনিয়র পর্যন্ত।
দান করুন