Alege nested când mai multe condiții trebuie să se aplice aceluiași element dintr-un array. Altfel, valori din elemente diferite pot îndeplini accidental împreună interogarea.
Un produs cu două variante
Alege nested când mai multe condiții trebuie să se aplice aceluiași element dintr-un array. Altfel, valori din elemente diferite pot îndeplini accidental împreună interogarea.
Nu există variantă roșie mărimea L. Dar mappingul object obișnuit aplatizează câmpurile în mai multe culori și mărimi, pierzând asocierea dintre ele. O interogare pentru roșu și L poate astfel potrivi greșit produsul.
Mapează variants ca nested și color/size ca keyword. Apoi folosește:
{
"query": {
"nested": {
"path": "variants",
"query": {
"bool": {
"filter": [
{"term":{"variants.color":"red"}},
{"term":{"variants.size":"L"}}
]
}
}
}
}
}
Ambele filtre rulează acum în același element nested, deci produsul din exemplu nu se potrivește. Schimbă L în S și poate corespunde variantei roșii.
Elementele nested creează documente interne suplimentare și interogări mai costisitoare. Object obișnuit este mai simplu când nu trebuie păstrate relațiile din arrayuri. Testează combinații valide și combinații între elemente înainte să decizi că mappingul funcționează.
O bibliotecă de întrebări de interviu IT cu răspunsuri detaliate — de la Junior la Senior.
Donează