![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 17.07.2023 Ostrzeżenie: (0%) ![]() ![]() |
Cześć.
Utworzyłem index w elasticu, który przechowuje listę produktów z ich ilością sprzedażową, oraz dodatkowo listą magazynów wraz z ilością tego produktu na poszczególnym magazynie. Dokument wygląda w ten sposób Kod PUT /moj_index { "mappings": { "properties": { "nazwa_produktu": { "type": "text" }, "ilosc_do_sprzedazy": { "type": "integer" }, "magazyny": { "type": "nested", "properties": { "nazwa_magazynu": { "type": "keyword" }, "ilosc_w_magazynie": { "type": "integer" } } } } } } Szukam sposobu aby wyfiltrować te produkty, których ilość do sprzedaży jest mniejsza niż suma tego produktu na wybranych magazynach. Kod GET /moj_index/_search { "query": { "bool": { "must": [ { "script": { "script": { "source": "doc['ilosc_do_sprzedazy'].value < doc['magazyny.ilosc_w_magazynie'].sum()" } } } ], "filter": [ { "nested": { "path": "magazyny", "query": { "terms": { "magazyny.nazwa_magazynu": [ "Magazyn A", "Magazyn C" ] } } } } ] } } } Powyższe query nie zwraca mi żadnych wyników, tak jakby ten skrypt nie działał poprawnie. Kod "script": { "source": "doc['ilosc_do_sprzedazy'].value < doc['magazyny.ilosc_w_magazynie'].sum()" } |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 07:37 |