Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [elasticsearch], Filtrowanie wyników
regede2271
post
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()"
            }





Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 07:37