A expansão de consulta é o afrouxamento incremental das restrições de consulta para incluir mais resultados quando nenhum ou poucos são encontrados inicialmente. Isso leva a um ajuste do tamanho do resultado por consulta.
Quando não há documentos relevantes para uma consulta, a expansão de consulta retorna documentos menos relevantes para garantir que não retorne zero resultados de pesquisa.
Ao contrário do facetamento dinâmico ou dos controles de veiculação, por exemplo, a expansão de consulta não pode ser configurada diretamente no Google Cloud console. Em vez disso, você precisará configurar a expansão de consulta de maneira programática para cada solicitação de pesquisa. Leia mais para saber como configurar a expansão de consulta na API.
Tutorial sobre expansão de consulta
Este tutorial mostra como ativar o recurso de expansão de consulta. Quando um comprador usa uma frase de pesquisa ambígua ou com várias palavras, ele pode receber uma resposta vazia. Depois de ativar a expansão de consulta, a solicitação é analisada e a lista expandida de produtos com base na consulta de pesquisa analisada é retornada.
Para seguir as instruções da tarefa diretamente no editor do Cloud Shell, clique em Orientações:
Visão geral da expansão de consulta
A expansão de consulta é um recurso avançado projetado para melhorar o recall de pesquisa e evitar cenários de resultado zero, principalmente para consultas de usuário complexas ou de cauda longa.
Em vez de não retornar resultados quando uma correspondência exata não é encontrada no catálogo de produtos, a expansão de consulta identifica e mostra produtos relacionados ou alternativos. Isso melhora a experiência do usuário e pode aumentar as taxas de conversão.
Os principais casos de uso da expansão de consulta são:
- Consultas de cauda longa: para pesquisas altamente específicas, como leite orgânico com alto teor de proteína e baixo teor de gordura para diabéticos,o catálogo pode não ter uma correspondência perfeita. A expansão de consulta pode retornar produtos que correspondam a partes da intenção, como produtos marcados com atributos ou valores de atributos de leite para diabéticos, leite com alto teor de proteína.
- Produtos alternativos: se os usuários pesquisarem uma marca ou produto que não esteja no catálogo, como café Starbucks 100 ml, a expansão de consulta poderá sugerir marcas de café alternativas disponíveis para compra, evitando uma pesquisa sem saída.
As próximas seções descrevem a funcionalidade, o mecanismo de acionamento e as nuances de configuração do recurso de expansão de consulta na Pesquisa de comércio com IA, com foco específico no papel fundamental do filtro canônico.
Mecanismo de acionamento de expansão de consulta
A decisão de ativar a expansão de consulta ou uma determinada consulta de pesquisa é automatizada e baseada em uma regra de filtro canônico configurável rapidamente.
- Condição de acionamento: a expansão de consulta é acionada somente se a pesquisa inicial com a consulta de filtro canônico gerar menos de três resultados de produtos.
- Limite: esse limite de três por padrão pode ser alterado. Ele funciona bem para a maioria dos casos de uso de e-commerce, garantindo que a expansão de consulta seja ativada somente se e quando o conjunto de resultados inicial for realmente esparso.
Configurar a expansão de consulta na API
A expansão de consulta é configurada de maneira programática por solicitação usando a API da seguinte maneira:
Configuração da API: você controla a expansão de consulta incluindo o objeto
queryExpansionSpecna suaSearchRequest.Configurações: em
queryExpansionSpec, defina o campoconditioncomoAUTOpara ativar o recurso ouDISABLEDpara desativá-lo, que é o padrão se não for especificado.Fixação: opcionalmente, você pode definir
pinUnexpandedResultscomotruena solicitação para garantir que as correspondências exatas da consulta original apareçam na parte de cima dos resultados da pesquisa, seguidas pelos resultados expandidos. Para mais informações, leia a página de fixação.
Configurar filtros canônicos
Para que a expansão de consulta seja acionada de maneira eficaz, você precisa configurar corretamente o canonical_filter na sua solicitação de pesquisa.
Para implementar corretamente a expansão de consulta, é fundamental entender os dois parâmetros de filtro principais em uma solicitação de pesquisa: filtros de nível superior e filtros canônicos.
Filtro de nível superior (
filter): é o filtro principal aplicado aos resultados da pesquisa antes de serem retornados ao usuário. É uma combinação de duas camadas possíveis:Filtro comercial/base: regras predefinidas aplicadas a todas as pesquisas, geralmente sem entrada direta do usuário, como
inStock=TRUE, category="groceries", storeId="XYZ".Filtros de atributos selecionados pelo usuário: filtros aplicados dinamicamente pelo usuário ao interagir com a interface de pesquisa, como selecionar filtros de atributos para marca="Adidas", tamanho="G".
Filtros canônicos (
canonical_filter): é um filtro de propósito especial usado exclusivamente pelo módulo de decisão de expansão de consulta. O único trabalho dele é definir a visualização do catálogo em relação à qual a condição de acionamento da expansão de consulta (menos de cinco resultados) é avaliada.
Funções principais do filtro canônico
O filtro canônico foi projetado para distinguir entre um resultado de pesquisa organicamente ruim e um conjunto de resultados que foi intencionalmente restringido pelo usuário. Ele pode ser amplo para excluir a lógica de negócios para considerar os filtros aplicados pelo usuário ou restringido para acionar a expansão de consulta quando necessário, dependendo do cenário do usuário.
Cenário 1
-
Jornada do usuário: o usuário pesquisa por camiseta e recebe milhares de resultados. Há um
business_filterpadrão, de modo que, por exemplo, ele filtra apenas produtos em estoque e produtos que correspondem a um atributo personalizado no nível da loja. Em seguida, o usuário aplica filtros de atributos para marca="Adidas" e tamanho="G", o que reduz a contagem de resultados para dois. - Se
canonical_filterfosse definido para incluir as mesmas condiçõesfilter(comoAVAILABILITY: IN_STOCK AND color: "Red": o sistema de decisão de expansão de consulta mostraria apenas dois resultados e acionaria incorretamente a expansão de consulta, inundando o usuário com produtos relacionados, mas irrelevantes, como camisetas da Nike, quebrando a filtragem explícita do usuário. - A configuração correta é
canonical_filter = business filter. A decisão de expansão de consulta precisa ser tomada com base na consulta inicial, excluindo os atributos selecionados pelo usuário. Ao manter ocanonical_filteramplo, o sistema identifica corretamente que há muitos produtos correspondentes no catálogo, permitindo que ele respeite os filtros estritos do usuário sem forçar uma expansão.
Cenário 2
-
Jornada do usuário: o usuário pesquisa por camiseta Adidas com estampas gráficas pretas e gera apenas um ou dois resultados, se houver. Há um
business_filterpadrão, de modo que, por exemplo, ele filtra apenas produtos em estoque e produtos que correspondem a um atributo personalizado no nível da loja. - Se
canonical_filternão estiver definido ou configurado corretamente, a pesquisa com filtro canônico poderá encontrar produtos que correspondam à consulta, mas estejam esgotados ou de uma loja diferente, o que significa um valor diferente de atributo personalizado no nível da loja. Nesse caso, a expansão de consulta não é acionada. -
A configuração correta é
canonical_filter = business filter. Com essa configuração, a decisão de expansão de consulta encontra menos de três produtos para a consulta longa especificada, e, em seguida, aciona uma expansão de consulta e traz produtos relacionados à consulta original, ou seja, produtos em estoque que correspondem ao atributo no nível da loja. Isso expande os resultados da pesquisa para incluir camisetas pretas com estampas gráficas impressas de uma marca diferente, camisetas com estampas gráficas de outras cores ou outros produtos de camisetas da marca consultada. Inclua restrições comerciais para esse caso de uso decanonical_filter.
Práticas recomendadas para expansão de consulta
O filtro canônico quase sempre precisa ser definido como idêntico ao filtro comercial ou básico. Isso garante que o módulo de expansão de consulta avalie o potencial da consulta em relação à mesma visualização ampla do catálogo que os usuários veem inicialmente antes de começar a aplicar atributos.
Fluxo de processo de pesquisa e expansão de consulta de ponta a ponta
Quando uma solicitação de pesquisa é feita, vários processos paralelos ocorrem:
Solicitação recebida: a API recebe a solicitação de pesquisa que contém a consulta, o
filterprincipal e ocanonical_filter.Pesquisa de decisão de expansão de consulta: em paralelo, o módulo de decisão de expansão de consulta realiza a própria pesquisa interna usando a consulta combinada com o filtro canônico.
Verificação da contagem de resultados: o módulo verifica o número de produtos retornados da pesquisa interna.
- Se os resultados forem cinco ou mais: a expansão de consulta não será acionada. Os resultados da pesquisa padrão passam para a etapa de filtragem final.
- Se os resultados forem menores que cinco: a expansão de consulta será acionada. O modelo afrouxa sistematicamente a consulta para encontrar produtos relacionados. Por exemplo, o modelo pode encontrar para smartphone Pixel 5 , smartphones Pixel 4, fones de ouvido Pixel ou até mesmo smartphones Samsung.
- Filtragem final: o conjunto de produtos (o conjunto original ou o conjunto expandido da expansão de consulta) é transmitido para a etapa final. Nesse caso, o filtro de nível superior, que contém regras de negócios e todos os atributos selecionados pelo usuário, é aplicado de maneira estrita.
- Resposta enviada: a lista filtrada final de produtos é retornada na resposta da API.
Caso de uso avançado de ativação seletiva de expansão de consulta
Você pode configurar estrategicamente os filtros para ativar ou desativar a expansão de consulta para partes específicas do seu catálogo.
Considere o cenário de um catálogo grande que contenha alimentos, eletrônicos e roupas de moda. Para esse cenário, você precisa ter os seguintes aspectos em mente.
Objetivo
Ative a expansão de consulta para consultas de alimentos difíceis de encontrar ou escassos, mas mostre zero resultados para eletrônicos ou itens de moda. A necessidade comercial aqui é ativar a expansão de consulta de maneira seletiva apenas na parte de alimentos.
Configuração
Para esse cenário de caso de uso, a expansão de consulta seletiva pode ser configurada da seguinte maneira:
canonical_filter: defina como amplo. Ele precisa incluir todas as categorias: alimentos, eletrônicos e moda, além de regras básicas, como disponibilidade de estoque, definindo o filtro canônico comcategory="groceries" OR category="electronics" OR category="fashion") AND inStock=TRUE)filter: defina como estreito, com base no contexto do usuário. Para um usuário na seção de alimentos, o filtro seriacategory="groceries" AND inStock=TRUE.
Como funciona
A expansão de consulta seletiva funciona nesse cenário da seguinte maneira:
- O usuário pesquisa por "iPhone 20" : o módulo de expansão de consulta usa o canonical_filter amplo, encontra modelos de iPhone existentes (menos de cinco resultados) e decide não acionar a expansão de consulta. Os resultados da pesquisa padrão (iPhones existentes) são transmitidos para o filtro principal, que os bloqueia porque
category="electronics"não corresponde acategory="groceries". O usuário vê corretamente zero resultados. - O usuário pesquisa por *leite para diabéticos com alto teor de proteína:* o módulo de expansão de consulta usa o
canonical_filtere encontra menos de cinco resultados, acionando a expansão de consulta ao encontrar produtos de leite relacionados. Esses produtos são transmitidos para o filtro principal. Como eles correspondem acategory="groceries", esses produtos são retornados ao usuário.
Ao manipular o escopo do canonical_filter (a visualização de tomada de decisão) e o filter principal (a visualização de saída final), você ganha controle preciso sobre a experiência de pesquisa.
Exemplo de conjunto de dados
Nesta página, usamos o conjunto de dados a seguir como exemplo. Expanda-o para conferir os campos no conjunto de dados de descrição do produto de exemplo.
Exemplo de conjunto de dados do produto
| ID | título | brands | categories | price_info.price |
|---|---|---|---|---|
| "nest_mini_2nd_gen" | "Nest Mini (segunda geração)" | ["Google", "Nest"] | ["Nest > alto-falantes e telas"] | 49,00 |
| "nest_audio" | " Audioudio Nest" | ["Google", "Nest"] | ["Nest > alto-falantes e telas"] | 99,99 |
| "nest_hub_max" | "Nest Hub Max" | ["Google", "Nest"] | ["Nest > alto-falantes e telas"] | 229,00 |
| "nest_hub" | "Nest Hub" | ["Google", "Nest"] | ["Nest > alto-falantes e telas"] | 88,99 |
| "google_home_max" | "Google Home Max" | ["Google", "Nest"] | ["Nest > alto-falantes e telas"] | 299,00 |
| "google_home_mini" | "Google Home Mini" | ["Google", "Nest"] | ["Nest > alto-falantes e telas"] | 49,00 |
| "google_pixel_5" | "Google Pixel 5" | ["Google", "Pixel"] | ["Pixel > smartphones"] | 699,00 |
| "google_pixel_4a_with_5g" | "Google Pixel 4a com 5G" | ["Google", "Pixel"] | ["Pixel > smartphones"] | 499,00 |
| "google_pixel_4a" | "Smartphones Google Pixel 4a" | ["Google", "Pixel"] | ["Pixel > smartphones"] | 349,00 |
| "google_pixel_stand" | "Google Pixel Stand" | ["Google", "Pixel"] | ["Pixel > acessórios em destaque"] | 79,00 |
| "google_pixel_buds" | "Google Pixel Buds" | ["Google", "Pixel"] | ["Pixel > acessórios em destaque"] | 179,00 |
| "google_pixel_5_case" | "Capa para Google Pixel 5" | ["Google", "Pixel"] | ["Pixel > acessórios em destaque"] | 40,00 |
| "google_pixel_4a_5g_case" | "Capa para Google Pixel 4a (5G)" | ["Google", "Pixel"] | ["Pixel > acessórios em destaque"] | 40,00 |
| "google_pixel_4a_case" | "Capa para Google Pixel 4a" | ["Google", "Pixel"] | ["Pixel > acessórios em destaque"] | 40,00 |
A expansão de consulta amplia as consultas de pesquisa para mais resultados
A expansão de consulta aumenta o recall de termos de consulta com poucos resultados, especialmente consultas de cauda longa. A consulta ampliada gera um tamanho maior de resultado de pesquisa.
Esse recurso de pesquisa é impulsionado por uma especificação que determina as condições de expansão de consulta. Ele inclui uma opção pinUnexpandedResults que está desativada por padrão. Quando definido como true, ele mostra produtos não expandidos na parte de cima dos resultados da pesquisa. A parte de cima é seguida pelos resultados expandidos.
Java
Por exemplo, se você pesquisar Google Pixel 5 sem expansão de consulta, o resultado será restrito aos IDs google_pixel_5. No entanto, com a expansão de consulta
, você também poderá receber IDs google_pixel_4a_with_5g, google_pixel_4a e
google_pixel_5_case no conjunto de dados de descrição do produto de exemplo também.