Kies nested wanneer meerdere voorwaarden op hetzelfde array-element moeten gelden. Anders kunnen waarden uit verschillende elementen samen onbedoeld de query vervullen.
Een product met twee varianten
Er bestaat geen rode variant in maat L. Gewone objectmapping vlakt deze velden echter af tot meerdere kleuren en maten, waarbij de koppeling tussen kleur en maat verloren gaat. Een query voor rood en L kan het product daardoor ten onrechte vinden.
Map variants als nested en color/size als keyword. Gebruik vervolgens:
{
"query": {
"nested": {
"path": "variants",
"query": {
"bool": {
"filter": [
{"term":{"variants.color":"red"}},
{"term":{"variants.size":"L"}}
]
}
}
}
}
}
Beide filters draaien nu binnen hetzelfde nested element, zodat het voorbeeldproduct niet matcht. Verander L in S en de rode variant kan wel matchen.
Nested elementen maken extra interne documenten en duurdere queries. Gewone objectmapping is eenvoudiger wanneer relaties binnen arrays niet bewaard hoeven te blijven. Test geldige combinaties én combinaties over verschillende elementen voordat je de mapping goedkeurt.
Een bibliotheek met IT-sollicitatievragen met gedetailleerde antwoorden — van Junior tot Senior.
Doneren