Benutzer-Werkzeuge

Webseiten-Werkzeuge


webservice:item-get-filtersyntax

Filter-Syntax item/get

Zur Filterung der Artikeldaten mittels item/get wird über Index-Felder eingeschränkt. Die Filter werden als Query-Parameter übergeben und brauchen nicht vorher speziell konfiguriert werden (siehe Konfiguration und Parameter).

Die hier beschriebenen Filter lassen sind mit der Freitextsuche mit Relevanzsortierung kombinieren.

Filterverfahren

Einfacher Wert
...&Kategorie=hosen&....

Findet alle Elemente mit dem Teilvorkommen des Wertes „hosen“ im Feld Kategorie (also neben „hosen“ auch „hosen, socken“, jedoch nicht „hosenträger“). In der Regel möchte man natürlich keine Teilvorkommen finden, siehe hierzu die Anmerkung zu „Exakte Suche“.

Liste von Werten
...&Kategorie=hosen,schuhe&....

Funktionalität wie bei „einfacher Wert“, die Werte für das Feld werden mit „oder“ verknüpft. In der Werteliste können auch Bereichs- und Platzhaltersuchen verwendet werden (z.B. „alle Bücher mit Erscheinungsdatum zwischen .. oder zwischen …“)

Exakte Suche
...&Verfügbarkeit="lieferbar"&....

Findet nur Elemente mit dem Wert „lieferbar“ für das Feld Verfügbarkeit, „nicht lieferbar“ wird nicht gefunden.

:!:Exakte Suchen (also keine Teilvorkommen) sind nur möglich, wenn für die entsprechenden Felder als Analyzer ein Keyword-Analyzer konfiguriert wurde. Der Standard-Analyzer z.B. trennt an Wortgrenzen.

Bereichssuche

Zahl-Felder:

...&Preis_EUR=10 TO 150&...

Eine Bereichssuche für Zahl-Felder liefert nur das gewünschte Ergebnis, wenn der FieldType des zum Feld gehörenden Merkmals im dStore auch ein Zahl-Wert ist. Ist dies nicht der Fall, gilt die lexiographische Ordnung, was i.d.R. nicht gewünscht ist.

Datumsfelder inkl. Uhrzeit:

...&Einlagerungsdatum=2011-07-21T00:00:00Z TO 2011-08-10T23:59:59Z&... ..&Datum=2011-07-21 TO 2011-08-10&...

Datumsfelder:

...&Datum=2011-07-21 TO 2011-08-10&...

„Kurze“ Datumsfelder:

..&Datum=2011-07&...&Einlagerungsdatum=2011Z

Das Beispiel für mit den „kurzen“ Datumsfeldern enthält zwar keinen TO Operator jedoch handelt es sich trotzdem um eine Bereichsuche, da alle Elemente mit Datum im Juli 2011 bzw. Einlagerungsdatum in 2011 gefunden werden.

Das Format der Datumsfelder entspricht xsd:datetime. Das „Z“ bedeutet, dass es sich um die UTC-Zeitzone handelt und kann auch bei „kurzen“ Datumsfeldern verwendet werden.

Tipp: Der Bereich „0 to a“ findet alle positiven Zahlen. Das ist z.B. nützlich falls man als Bedingung angeben möchte, dass ein Bild (BinaryCodeID) vorhanden sein muss.

Platzhalter-Suche
...&Beschreibung=Murm*&...

Findet alle Elemente mit Vorkommen oder Teilvorkommen (abhängig vom „Analyzer“) die mit der angegebenen Zeichenkette beginnen. Platzhalter am Anfang sind nicht erlaubt. Die Anwendungsfälle für eine Platzhaltersuche sind begrenzt, in der Regel wird man eine Freitextsuche mittels „Search“ Parameter verwenden.

Interna

Die Suche mit der letztendlich im Lucene-Index nach den Elementen gesucht wird ist nach folgendem Muster aufgebaut (in Lucene-Query-Syntax dargestellt):

((Wert1_Feld1 OR Wert2_Feld1) AND Wert1_Feld2)
AND Query
AND Search 
AND (DomainTreeNodeID_Wert1 OR DomainTreeNodeID_Wert2)

Der folgende Beispielrequest

...?Template=xyz&Typ="jeans","shorts"&IstNeu=1&Search=hosen&Query=(+Binaries_Produktbild:[0 TO a])

wird (vereinfacht dargestellt) zu

((Typ:jeans OR Typ:shorts AND IstNeu:1) AND (Feld1..Feldn:hosen) AND (+Binaries_Produktbild:[0 TO a])
webservice/item-get-filtersyntax.txt · Zuletzt geändert: 13.11.2014 (Externe Bearbeitung)