అనేక షరతులు అర్రేలోని అదే ఎలిమెంట్కు వర్తించాలంటే nested ఎంచుకోండి. లేకపోతే వేర్వేరు ఎలిమెంట్ల విలువలు అనుకోకుండా కలిసి క్వెరీని నెరవేర్చవచ్చు.
రెండు వేరియంట్లు ఉన్న ఉత్పత్తి
ఎరుపు రంగులో L సైజు వేరియంట్ లేదు. కానీ సాధారణ object మ్యాపింగ్ ఈ ఫీల్డులను అనేక రంగులు, అనేక సైజులుగా ఫ్లాటెన్ చేస్తుంది; ఏ సైజు ఏ రంగుకు చెందుతుందో కోల్పోతుంది. అందువల్ల ఎరుపు, L కోసం క్వెరీ తప్పుగా ఉత్పత్తితో సరిపోలవచ్చు.
variantsను nestedగా, color/sizeను keywordగా మ్యాప్ చేయండి. తర్వాత వాడండి:
{
"query": {
"nested": {
"path": "variants",
"query": {
"bool": {
"filter": [
{"term":{"variants.color":"red"}},
{"term":{"variants.size":"L"}}
]
}
}
}
}
}
ఇప్పుడు రెండు ఫిల్టర్లు ఒక నెస్టెడ్ ఎలిమెంట్ లోపల నడుస్తాయి, కాబట్టి ఉదాహరణ ఉత్పత్తి సరిపోలదు. Lను Sగా మార్చితే ఎరుపు వేరియంట్ సరిపోలవచ్చు.
నెస్టెడ్ ఎలిమెంట్లు అదనపు అంతర్గత డాక్యుమెంట్లను, ఎక్కువ ఖర్చైన క్వెరీలను సృష్టిస్తాయి. అర్రేల లోపల సంబంధాలను కాపాడాల్సిన అవసరం లేకపోతే సాధారణ object సరళమైనది. మ్యాపింగ్ పనిచేస్తుందని నిర్ణయించే ముందు చెల్లుబాటైన కలయికలు, వేర్వేరు ఎలిమెంట్లను కలిపే కలయికలు రెండింటినీ పరీక్షించండి.
జూనియర్ నుండి సీనియర్ వరకు వివరణాత్మక సమాధానాలతో IT ఇంటర్వ్యూ ప్రశ్నల లైబ్రరీ.
విరాళం