Wybierz nested, gdy kilka warunków musi dotyczyć tego samego elementu tablicy. W przeciwnym razie wartości z różnych elementów mogą przypadkowo razem spełnić zapytanie.
Produkt z dwoma wariantami
Wybierz nested, gdy kilka warunków musi dotyczyć tego samego elementu tablicy. W przeciwnym razie wartości z różnych elementów mogą przypadkowo razem spełnić zapytanie.
Nie istnieje czerwony wariant L. Zwykły mapping object spłaszcza jednak pola do wielu kolorów i rozmiarów, tracąc ich powiązania. Zapytanie o czerwony i L może więc błędnie dopasować produkt.
Zmapuj variants jako nested oraz color/size jako keyword. Następnie użyj:
{
"query": {
"nested": {
"path": "variants",
"query": {
"bool": {
"filter": [
{"term":{"variants.color":"red"}},
{"term":{"variants.size":"L"}}
]
}
}
}
}
}
Oba filtry działają teraz wewnątrz jednego elementu nested, więc przykładowy produkt nie pasuje. Zmień L na S, a czerwony wariant może pasować.
Elementy nested tworzą dodatkowe wewnętrzne dokumenty i droższe zapytania. Zwykły object jest prostszy, kiedy zachowanie relacji wewnątrz tablic nie jest potrzebne. Testuj poprawne kombinacje i kombinacje między różnymi elementami, zanim uznasz mapping za poprawny.
Biblioteka pytań rekrutacyjnych IT ze szczegółowymi odpowiedziami — od Juniora do Seniora.
Wesprzyj