Översikt över filtrera logik

Objektfiltrering är en av de viktigaste funktionerna i tjänsten Intelligent Recommendations. Med filter kan tusentals objekt begränsas beroende på vissa anpassningsbara parametrar, till exempel storlek, färg, kategori, pris och endast returobjekt som uppfyller slutanvändares behov och intressen.

I det här dokumentet beskrivs filtreringslösningen för Intelligent Recommendations och delas in i följande avsnitt:

Avsnittsrubrik Översikt
Filtreringsfunktioner De logiska filtreringsåtgärder som vi stöder.
Dataschema Datakontraktet för definition av filter för produktobjekt och varianter.
API Filterfrågespråket för vår körningstjänst.

Du bör se till att dataschemat och API:et är väldokumenterade, är så enkla som möjligt för en god kundupplevelse (slutanvändare).

Filtreringsfunktioner

Du kan ställa in filtervärden per artikel/variant, och baserat på dessa värden kan du fråga Intelligent Recommendations körningstjänst API med olika filteroperatorer. Mer information finns i avsnittet Dataschema nedan.

Tjänsten Intelligent Recommendations stöder för närvarande följande filteroperatorer:

  1. Lika med
  2. OCH/ELLER
  3. Intervall
  4. Tillgänglighet

Lika med

Lika med operator logik

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. 

Exempel:

Objektvärden (D) API-värde (a) Nöjd
{Blå, Svart, Röd} Röd Sant
{Blå, Svart} Röd Falsk
Röd Falsk

Logik med flera värden

Det här avsnittet behandlar regler för AND, OR, Range och Availability operator logik.

operatorlogik för OCH/ELLER

Operatör Definition
OCH Let A be the API requested set of values, X will pass the filter iff A ⊆ D
ELLER Let A be the API requested set of values, X will pass the filter if and only if A∩D ≠∅

Ytterligare kommentarer:

  • Stöder skiftlägesokänsliga strängar.
  • Booleska värden kan representeras av "sant" och "falskt" strängar.
Exempel på OCH/ELLER logik
Logiska operatorer Objektvärden (D) API-värden (A) Nöjd
ELLER {Blå, Svart, Röd} {Grön, Vit} Falsk
ELLER {Blå, Svart, Röd} {Grön, Blå} Sant
OCH {Blå, Svart, Röd} {Grön, Blå} Falsk
OCH {Blå, Svart, Röd} {Röd, Blå} Sant

Intervall

Operatorn stöder endast numeriska värden och är nöjd om och endast om minst ett av objektfiltervärdena finns inom det API-begärda intervallet.

  • Särskilda fall:
    • Större än (eller lika med)
    • Mindre än (eller lika med)
Exempel på intervallfiltrering
values API-intervall Nöjd
{2,9,23} 5 <= värde < 15 Sant
{50,128} 128 < värde Falsk

Tillgänglighetsfilter

Det här är ett speciellt tidsbaserat filter som filtrerar bort alla objekt som inte finns inom tillgänglighetens tidsperiod. Tillgänglighetens tidsintervall definieras per objekt i tillgänglighetsdataschemat. Filtret körs alltid som standard.

Dataschema

Med tjänsten Intelligent Recommendations kan du definiera upp till 20 olika filter. Du kan använda följande dataschema för att definiera filtervärden för dina produktobjekt (mer information finns i entitetsguiden för katalogdata för filter):

Name Datatyp Obligatorisk Kommentarer
ItemId String Ja
ItemVariantId String No
FilterName String Ja Längd begränsad till 64 tecken.
FilterValue String Ja Längd begränsad till 64 tecken.
FilterType String Ja Möjliga värden är – Textuell, Numerisk.

Huvudobjekt- och objektvarianter

  • Ett objekt (eller huvudobjekt) kan ha en 1 till N-relation med objektvarianterna.
  • En variant ärver alla attribut i huvudattributet som standard. Du kan åsidosätta ett attribut genom att uttryckligen åsidosätta det, enligt exemplet nedan.

För filter med flera värden bör du tillhandahålla flera rader med ett enda värde, varje rad med ett annat värde.

Exempel:

ItemId ItemVariantId FilterName FilterValue FilterType
Objekt1 Color Röd Text
Objekt1 Item1Var1 Color Blått Text
Objekt1 Item1Var1 Color Svart Text
Objekt1 Size 38.0 Numerisk

I det här exemplet Item1 är huvudobjekt och har färgen Röd och storlek 38,0. Item1Var1 är en variant Item1 och har två färger: Blått och Svart (åsidosatta värden) och en storlek – 38,0 (ärvt värde).

API

API för filtrering av Intelligent Recommendations baseras på Microsofts REST-API riktlinjer.

$filter är URL-parametern som innehåller den fullständiga frågans booleska uttryck. Det angivna uttrycket $filter utvärderas för varje objekt och endast de objekt där uttrycket beräknas som sant ingår i svaret.

[Kommentar!]

  • Endast filter som matchar efter namn (skiftlägesokänslig) till ett av FilterName-värdena (från dataschema) och som har en lämplig FilterType (textuell/numerisk) för den begärda filteråtgärden, kommer att köras. Resten kommer att ignoreras.
  • En objekthanterare returneras om uttrycket beräknas som sant för sina egna filtervärden ELLER för en av varianterna.

I följande tabell beskrivs vilka filteroperer som stöds:

Operatör Type Operatör Description Exempel
Jämförelse eq Lika med färg eq "röd"
Jämförelse gt Större än storlek gt 34
Jämförelse ge Större än eller lika med storlek ge 36
Jämförelse lt Mindre än storlek lt 42
Jämförelse le Mindre än eller lika med storlek le 40
Logiskt and Logisk och storlek le 44 och storlek gt 38
Logiskt or Logiskt eller färg eq "röd" eller färg eq "blå"
Gruppering ( ) Gruppering av prioritet (färg eq "röd" eller färg eq "blå") och storlek gt 38

URL-exempel:

  • 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

[!OBS]

URL-kodningen behövs.

Stödda scenarier
  • OCH logisk operator mellan olika filter.
  • ELLER operator mellan olika värden för samma filter. Felhantering – för en fråga som inte stöds returnerar tjänsten http-status för felaktiga förfrågningar (400).

Se även

Intelligent Recommendations API
Snabbstartsguide för anrop till API
Vanliga loggningsfel
Översikt över datakontrakt