Home » OBS Plugins » OBS Interfaces » Eigenes Query definieren

Eigenes Query definieren

OBS-Interfaces
Inhalt

Für die Schnittstellen können in den Einstellungen eigene Queries definiert werden, um die Auswahl der Produkte in der Ausgabedatei genauer zu spezifizieren. Einige Einstellungen sind über das Feld „Eigenes Query“ verfügbar, um die Anfrage an Elasticsearch selbst zu gestalten.

Siehe auch:

Beispiel: Wildcard

Nur Produkte ausgeben die mit der Warengruppen-URL /bekleidung beginnen inkl. aller Unterwarengruppen:

{
   "must":[
      {
         "wildcard":{
            "category_fullpath_boxs":"bekleidung/*"
         }
      }
   ]
}

Beispiel: Produkte anhand von Bilddateinamen ausschließen

Nur Produkte ausgeben bei denen der Dateiname „bilddateiname-xyz123“ nicht als Galeriebild gesetzt ist. Der Bilddateiname wird ohne Dateiendung (Beispiel .jpg) angeben:

{
   "must":[
      {
         "nested":{
            "path":"gallery_image",
            "query":{
               "bool":{
                  "must_not":{
                     "match":{
                        "gallery_image.media_url_boxs":"bilddateiname-xyz123"
                     }
                  }
               }
            }
         }
      }
   ]
}

Beispiel: Nur Produkte die min. 1x auf Lager sind

Nur Produkte Lager >0 ausgeben:

{
   "must":[
      {
         "nested":{
            "path":"_item_",
            "query":{
               "bool":{
                  "must":{
                     "range":{
                        "_item_.availability.availability_allocatablecount_boxf":{
                           "gt":0
                        }
                     }
                  }
               }
            }
         }
      }
   ]
}

Beispiel: Produkte anhand von Bilddateinamen ausschließen + Produkt Lager >0

Nur Produkte ausgeben bei denen der Dateiname „bilddateiname-xyz123“ nicht als Galeriebild gesetzt und das Produkt Lager >0 ist. Der Bilddateiname wird ohne Dateiendung (Beispiel .jpg) angeben:

{
   "must":[
      {
         "nested":{
            "path":"gallery_image",
            "query":{
               "bool":{
                  "must_not":{
                     "match":{
                        "gallery_image.media_url_boxs":"bilddateiname-xyz123"
                     }
                  }
               }
            }
         }
      },
      {
         "nested":{
            "path":"_item_",
            "query":{
               "bool":{
                  "must":{
                     "range":{
                        "_item_.availability.availability_allocatablecount_boxf":{
                           "gt":0
                        }
                     }
                  }
               }
            }
         }
      }
   ]
}

Beispiel: Einzelne Produkte über ID ausgeben

Produkte mit den IDs 7204 und 7271 ausgeben.

{
   "must":[
      {
         "nested":{
            "path":"_item_",
            "query":{
               "bool":{
                  "should":[
                     {
                        "term":{
                           "_item_.id":7204
                        }
                     },
                     {
                        "term":{
                           "_item_.id":7271
                        }
                     }
                  ]
               }
            }
         }
      }
   ]
}

Die Abfrage innerhalb von „should“ kann um beliebige Produkt IDs erweitert werden.

...
{
   "term":{
      "item.id":"XXXXX"
   }
},
...

Beispiel: Produkte anhand vom Markennamen ausschließen + Mindestpreis

Nur Produkte ausgeben die nicht mit der Marke „Leovince“, „Remus“, „GASGAS“ ausgezeichnet sind und mindestens 100,- Euro kosten.

{
   "must":[
      {
         "nested":{
            "path":"_item_",
            "query":{
               "bool":{
                  "must_not":{
                     "match":{
                        "_item_.item_brand_boxs":"Leovince"
                     }
                  }
               }
            }
         }
      },
      {
         "nested":{
            "path":"_item_",
            "query":{
               "bool":{
                  "must_not":{
                     "match":{
                        "_item_.item_brand_boxs":"Remus"
                     }
                  }
               }
            }
         }
      },
      {
         "nested":{
            "path":"_item_",
            "query":{
               "bool":{
                  "must_not":{
                     "match":{
                        "_item_.item_brand_boxs":"GASGAS"
                     }
                  }
               }
            }
         }
      },
      {
         "nested":{
            "path":"_item_",
            "query":{
               "bool":{
                  "must":{
                     "range":{
                        "_item_._price_.price_boxf":{
                           "gt":100
                        }
                     }
                  }
               }
            }
         }
      }
   ]
}

Hilfecenter: