Overzicht van filterlogica

Filteren van items is een van de belangrijkste mogelijkheden in de Intelligent Recommendations-service. Met behulp van filters kunnen duizenden items worden verfijnd op basis van bepaalde aanpasbare parameters zoals maat, kleur, categorie, prijs, enzovoort en door alleen items te retourneren die voldoen aan de behoeften en interesses van de eindgebruiker.

In dit document wordt de filteroplossing voor Intelligent Recommendations beschreven en is een onderverdeling in de volgende gedeelten gemaakt:

Sectietitel Samenzicht
Filtermogelijkheden De logische filterbewerkingen die we ondersteunen.
Gegevensschema Het gegevenscontract voor het definiëren van filters voor productitems en varianten.
API De filterquerytaal van onze runtime-service.

U moet ervoor zorgen dat het gegevensschema en de API goed zijn gedocumenteerd, strikt en zo eenvoudig mogelijk zijn voor een goede klantervaring (eindgebruiker).

Filtermogelijkheden

U kunt filterwaarden per item/variant instellen en op basis van deze waarden de runtime-service-API van Intelligent Recommendations opvragen met verschillende filteroperators. Zie het gedeelte Gegevensschema hieronder.

De service Intelligent Recommendations ondersteunt momenteel de volgende filteroperators:

  1. Gelijk aan
  2. EN/OF
  3. Bereik
  4. Beschikbaarheid

Gelijk aan

Logica van Is gelijk aan-operator

Let D be the set of filter values defined for an item X, and ‘a’ be the API requested value.
X will pass the filter if and only if  a∈D. 

Voorbeelden:

Itemwaarden (D) API-waarde (a) Tevreden
{Blauw, Zwart, Rood} Rood True
{Blauw, Zwart} Rood False
Rood False

Logica van meerdere waarden

In dit gedeelte worden de logicaregels van de operators AND, OR, Range en Availability behandeld.

Operatorlogica voor EN/OF

Operator Definitie
EN Let A be the API requested set of values, X will pass the filter iff A ⊆ D
OF Let A be the API requested set of values, X will pass the filter if and only if A∩D ≠∅

Aanvullende opmerkingen:

  • Ondersteunt niet-hoofdlettergevoelige tekenreeksen.
  • Booleaanse waarden kunnen worden weergegeven door de tekenreeksen 'true' en 'false'.
Voorbeelden van EN/OF-logica
Logische operator Itemwaarden (D) API-waarden (A) Tevreden
OF {Blauw, Zwart, Rood} {Groen, Wit} False
OF {Blauw, Zwart, Rood} {Groen, Blauw} True
EN {Blauw, Zwart, Rood} {Groen, Blauw} False
EN {Blauw, Zwart, Rood} {Rood, Blauw} True

Bereik

De operator ondersteunt alleen numerieke waarden en is tevreden als en alleen als ten minste één van de itemfilterwaarden binnen het door de API gevraagde bereik vallen.

  • Speciale gevallen:
    • Groter dan (of gelijk aan)
    • Kleiner dan (of gelijk aan)
Voorbeelden van filteren op bereik
waarden API-bereik Tevreden
{2,9,23} 5 <= waarde < 15 True
{50,128} 128 < waarde False

Beschikbaarheidsfilter

Dit is een speciaal op tijd gebaseerd filter dat alle items uitfiltert die buiten het beschikbaarheidstijdbereik vallen. Het beschikbaarheidstijdbereik wordt per item gedefinieerd in het beschikbaarheidsgegevensschema. Dit filter wordt altijd standaard uitgevoerd.

Gegevensschema

Met de service Intelligent Recommendations kunt u maximaal 20 verschillende filters definiëren. U kunt het volgende gegevensschema gebruiken om filterwaarden voor uw productitems te definiëren (zie voor meer informatie onze Catalogusgegevensentiteitgids voor filters):

Name Gegevenstype Verplicht Opmerkingen
ItemId String Ja
ItemVariantId String No
FilterName String Ja Lengte is beperkt tot 64 tekens.
FilterValue String Ja Lengte is beperkt tot 64 tekens.
FilterType String Ja Mogelijke waarden zijn: Tekstueel, Numeriek.

Itemmodel en itemvarianten

  • Een item (of hoofditem) kan een een-op-veel-relatie hebben met de itemvarianten ervan.
  • Een variant neemt standaard alle kenmerken van het hoofditem over. U kunt een kenmerk overschrijven door het expliciet te declareren, zoals in het onderstaande voorbeeld wordt getoond.

Voor filters met meerdere waarden moet u meerdere rijen met één waarde opgeven, waarbij elke rij een andere waarde heeft.

Voorbeeld:

ItemId ItemVariantId FilterName FilterValue FilterType
Item1 Color Rood Tekstueel
Item1 Item1Var1 Color Blauw Tekstueel
Item1 Item1Var1 Color Zwart Tekstueel
Item1 Omvang 38.0 Numeriek

In dit voorbeeld is Item 1 het hoofditem en heeft het één kleur Rood en één maat 38,0. Item1Var1 is een variant van Item 1 en heeft twee kleuren: Blauw en Zwart (overschreven waarden) en één maat: 38,0 (overgenomen waarde).

API

De filter-API voor Intelligent Recommendations is gebaseerd op REST-API-richtlijnen van Microsoft.

$filter is de URL-parameter die de volledige Booleaanse expressie van de query bevat. De expressie gespecificeerd met$filter wordt voor elk item geëvalueerd, en alleen items waarvan de expressie als waar wordt geëvalueerd, worden in de respons opgenomen.

[Opmerking!]

  • Alleen filters die op naam (niet-hoofdlettergevoelig) overeenkomen met een van de FilterName-waarden (van gegevensschema) en een geschikt FilterType (tekstueel/numeriek) hebben voor de gevraagde filterbewerking, worden uitgevoerd. De rest wordt genegeerd.
  • Een itemmodel wordt geretourneerd als de expressie voor de eigen filterwaarden als waar wordt geëvalueerd OF voor een van de bijbehorende varianten.

In de volgende tabel worden de ondersteunde filteroperators beschreven:

Operator Type Operator Omschrijving Voorbeeld
Vergelijking eq Gelijk aan kleur eq 'rood'
Vergelijking gt Groter dan maat gt 34
Vergelijking ge Groter dan of gelijk aan maat ge 36
Vergelijking lt Kleiner dan maat lt 42
Vergelijking le Kleiner dan of gelijk aan maat le 40
Logisch and Logisch en maat le 44 en gt 38
Logisch or Logisch of kleur eq 'rood' of kleur eq 'blauw'
Groepering ( ) Prioriteitsgroepering (kleur eq 'rood' of kleur eq 'blauw') en maat gt 38

URL-voorbeelden:

  • Reco/v1.0/New?$filter=color eq ‘Red’
  • Reco/v1.0/Popular?$filter=color eq ‘Red’ and size lt 40
  • Reco/v1.0/Picks?$filter=(name eq ‘Red’ or name eq 'Blue') and size le 44 and size gt 38

[!Opmerking]

URL-codering is vereist.

Ondersteunde scenario's
  • Logische EN-operator tussen verschillende filters.
  • OF-operator tussen verschillende waarden van hetzelfde filter. Foutafhandeling - voor een niet-ondersteunde query retourneert de service een ongeldige HTTP-aanvraagstatus (400).

Zie ook

Intelligent Recommendations-API
Snelstartgids voor het aanroepen van de API
Veelvoorkomende logboekfouten
Overzicht van gegevenscontract