Visão geral da lógica de filtragem
A filtragem de itens é um dos recursos mais importantes do serviço de Recomendações Inteligentes. Os filtros ajudam a restringir milhares de itens com base em determinados parâmetros personalizáveis, como tamanho, cor, categoria, preço etc., e retornam apenas itens que atendem às necessidades e interesses do usuário final.
Este documento descreve a solução de filtragem para Recomendações Inteligentes e será dividido nestas seções:
Título da seção | Visão geral |
---|---|
Recursos de filtragem | As operações lógicas de filtragem a que oferecemos suporte. |
Esquema de dados | O contrato de dados para definir filtros em itens de produtos e variantes. |
API | A linguagem de consulta de filtragem do nosso serviço de tempo de execução. |
Você deve garantir que o esquema de dados e a API sejam bem documentados, rigorosos e o mais simples possível para uma boa experiência do cliente (usuário final).
Recursos de filtragem
Você pode definir valores de filtro por item/variante e, com base nesses valores, consultar a API do serviço de tempo de execução de Recomendações Inteligentes com diferentes operadores de filtro. Para obter mais informações, consulte a seção Esquema de dados abaixo.
O serviço de Recomendações Inteligentes atualmente oferece suporte aos seguintes operadores de filtro:
Igual a
Lógica de operador igual
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.
Exemplos:
Valores do item (D) | Valor de API (a) | Satisfeito |
---|---|---|
{Azul, preto, vermelho} | Vermelho | Verdadeiro |
{Azul, preto} | Vermelho | False |
∅ | Vermelho | False |
Lógica de vários valores
Esta seção abrange as regras de lógica dos operadores AND
, OR
, Range
e Availability
.
Lógica do operador para AND/OR
Operator | Definição |
---|---|
E | Let A be the API requested set of values, X will pass the filter iff A ⊆ D |
ou | Let A be the API requested set of values, X will pass the filter if and only if A∩D ≠∅ |
Observações adicionais:
- Oferece suporte a cadeias de caracteres que não diferenciam maiúsculas de minúsculas.
- Os valores booleanos podem ser representados por cadeias de caracteres "true" e "false".
Exemplos de lógica AND/OR
Operador lógico | Valores do item (D) | Valores de API (A) | Satisfeito |
---|---|---|---|
ou | {Azul, preto, vermelho} | {Verde, branco} | False |
ou | {Azul, preto, vermelho} | {Verde, azul} | Verdadeiro |
E | {Azul, preto, vermelho} | {Verde, azul} | False |
E | {Azul, preto, vermelho} | {Vermelho, azul} | Verdadeiro |
Intervalo
O operador permite apenas valores numéricos e é satisfeito se e somente se pelo menos um dos valores de filtro de item estiver dentro do intervalo solicitado pela API.
- Casos especiais:
- Maior que (ou igual a)
- Menor que (ou igual a)
Exemplos de filtragem de intervalo
valores | Intervalo de API | Satisfeito |
---|---|---|
{2,9,23} | 5 <= valor < 15 | Verdadeiro |
{50,128} | 128 < valor | False |
Filtro de disponibilidade
Este é um filtro especial baseado em tempo que filtra todos os itens que estão fora do intervalo de tempo de disponibilidade. O intervalo de tempo de disponibilidade é definido por item no esquema de dados de disponibilidade. Esse filtro sempre será executado por padrão.
Esquema de dados
O serviço de Recomendações Inteligentes permite definir até 20 filtros diferentes. É possível usar o esquema de dados a seguir para definir valores de filtro em seus itens de produto (para obter mais detalhes, consulte nosso Guia de entidade de dados do catálogo para filtros):
Name | Tipo de dados | Obrigatório | Comentários |
---|---|---|---|
ItemId | String | Sim | |
ItemVariantId | String | No | |
FilterName | String | Sim | Tamanho limitado a 64 caracteres. |
FilterValue | String | Sim | Tamanho limitado a 64 caracteres. |
FilterType | String | Sim | Valores possíveis - Textual, Numérico. |
Mestre do item e variantes do item
- Um item (ou item mestre) pode ter um relacionamento um para muitos com suas variantes de item.
- Uma variante herda todos os atributos de seu mestre por padrão. Você pode substituir um atributo declarando-o explicitamente, conforme mostrado no exemplo abaixo.
Para filtros de vários valores, você deve fornecer várias linhas com um valor único, cada linha com um valor diferente.
Exemplo:
ItemId | ItemVariantId | FilterName | FilterValue | FilterType |
---|---|---|---|---|
Item1 | Color | Vermelho | Textual | |
Item1 | Item1Var1 | Color | Azul | Textual |
Item1 | Item1Var1 | Color | Preto | Textual |
Item1 | Size | 38.0 | Numérico |
Neste exemplo, Item1 é o item mestre e tem uma cor Vermelho e um tamanho 38,0. Item1Var1 é uma variante de Item1 e tem duas cores: Azul e Preto (valores substituídos) e um tamanho: 38,0 (valor herdado).
API
A API de filtragem de Recomendações Inteligentes é baseada em Diretrizes da API REST da Microsoft.
$filter
é o parâmetro de URL que contém a expressão Booliana de consulta completa.
A expressão especificada com $filter
é avaliada para cada item, e apenas os itens em que a expressão é avaliada como verdadeira são incluídos na resposta.
[Observação!]
- Serão executados somente os filtros que corresponderem por nome (não diferencia maiúsculas de minúsculas) a um dos valores FilterName (do esquema de dados) e tiver um FilterType apropriado (textual/numérico) para a operação de filtro solicitada. O resto será ignorado.
- Um mestre do item retornará se a expressão for avaliada como verdadeira para seus próprios valores de filtro OR para uma de suas variantes.
A tabela a seguir descreve os operadores de filtro compatíveis:
Operator | Type | Operator | Description | Exemplo |
---|---|---|---|---|
Comparação | eq | Igual a | cor igual a 'vermelho' | |
Comparação | gt | Maior que | tamanho maior que 34 | |
Comparação | ge | Maior ou igual a | tamanho maior ou igual a 36 | |
Comparação | lt | Menor que | tamanho menor que 42 | |
Comparação | le | Menor ou igual a | tamanho menor ou igual a 40 | |
Lógico | and | and lógico | tamanho menor ou igual a 44 e tamanho maior que 38 | |
Lógico | or | or lógico | cor igual a 'vermelho' ou cor igual a 'azul' | |
Agrupamento | ( ) | Agrupamento de precedência | (cor igual a 'vermelho' ou cor igual a 'azul') e tamanho maior que 38 |
Exemplos do URL:
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
[!Observação]
A codificação de URL é necessária.
Cenários com suporte
- Operador lógico AND entre diferentes filtros.
- Operador OR entre diferentes valores do mesmo filtro. Tratamento de erros: para uma consulta sem suporte, o serviço retornará um status HTTP de solicitação incorreto (400).
Confira também
API de Recomendações InteligentesGuia de início rápido para chamar a APIErros comuns de registroVisão geral do contrato de dados