Vyberte nested, když musí několik podmínek platit pro stejný prvek pole. Jinak mohou hodnoty z různých prvků omylem splnit dotaz společně.
Produkt se dvěma variantami
Červená varianta velikosti L neexistuje. Běžný object mapping ale zploští tato pole do více barev a velikostí, čímž ztratí vztah mezi velikostí a barvou. Dotaz na červenou a L tak může produkt chybně najít.
Namapujte variants jako nested a color/size jako keyword. Poté použijte:
{
"query": {
"nested": {
"path": "variants",
"query": {
"bool": {
"filter": [
{"term":{"variants.color":"red"}},
{"term":{"variants.size":"L"}}
]
}
}
}
}
}
Oba filtry nyní běží uvnitř jednoho nested prvku, takže ukázkový produkt neodpovídá. Změňte L na S a červená varianta může odpovídat.
Nested prvky vytvářejí další interní dokumenty a dražší dotazy. Běžný object je jednodušší, pokud není třeba zachovat vztahy uvnitř polí. Než mapping považujete za funkční, otestujte platné kombinace i kombinace napříč prvky.
Knihovna IT otázek k pohovoru s podrobnými odpověďmi — od Junior po Senior.
Přispět