Ö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:
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 APISnabbstartsguide för anrop till APIVanliga loggningsfelÖversikt över datakontrakt