Odaberite nested kada više uvjeta mora vrijediti za isti element polja. Inače vrijednosti iz različitih elemenata mogu slučajno zajedno zadovoljiti upit.
Proizvod s dvije varijante
Nema crvene varijante veličine L. No običan object mapping poravna polja u više boja i veličina te izgubi vezu između pojedine veličine i boje. Upit za crvenu i L zato može pogrešno pronaći proizvod.
Mapirajte variants kao nested, a color/size kao keyword. Zatim koristite:
{
"query": {
"nested": {
"path": "variants",
"query": {
"bool": {
"filter": [
{"term":{"variants.color":"red"}},
{"term":{"variants.size":"L"}}
]
}
}
}
}
}
Oba filtera sada rade unutar jednog nested elementa, pa primjer proizvoda ne odgovara. Promijenite L u S i crvena varijanta može odgovarati.
Nested elementi stvaraju dodatne interne dokumente i skuplje upite. Običan object jednostavniji je kada nije potrebno očuvati odnose unutar polja. Prije nego što zaključite da mapping radi, testirajte valjane kombinacije i one preko različitih elemenata.
Knjižnica IT pitanja za razgovore za posao s detaljnim odgovorima — od Juniora do Seniora.
Doniraj