Espansione della query

L'espansione delle query è l'allentamento incrementale dei vincoli delle query per includere più risultati quando inizialmente non ne vengono trovati o ne vengono trovati troppo pochi. Ciò comporta una regolazione della dimensione dei risultati per query.

Quando non ci sono documenti pertinenti per una query, l'espansione della query restituisce documenti meno pertinenti per garantire che non vengano restituiti zero risultati di ricerca.

A differenza del faceting dinamico o dei controlli di pubblicazione, ad esempio, l'espansione delle query non può essere configurata direttamente nella console Google Cloud . Dovrai invece configurare l'espansione delle query a livello di programmazione per ogni richiesta di ricerca. Continua a leggere per scoprire come configurare l'espansione delle query nell'API.

Tutorial sull'espansione delle query

Questo tutorial mostra come attivare la funzionalità di espansione delle query. Quando un acquirente utilizza una frase di ricerca ambigua o composta da più parole, può ricevere una risposta vuota. Dopo aver attivato l'espansione della query, la richiesta viene analizzata e viene restituito l'elenco esteso di prodotti in base alla query di ricerca analizzata.


Per seguire le indicazioni dettagliate per questa attività direttamente nell'editor di Cloud Shell, fai clic su Procedura guidata:

Procedura guidata


Panoramica dell'espansione delle query

L'espansione delle query è una funzionalità potente progettata per migliorare il recupero della ricerca ed evitare scenari con zero risultati, in particolare per le query degli utenti long-tail o complesse.

Anziché non restituire risultati quando non viene trovata una corrispondenza esatta nel catalogo dei prodotti, l'espansione della query identifica e mostra prodotti correlati o alternativi. Ciò migliora l'esperienza utente e può aumentare i tassi di conversione.

I casi d'uso principali per l'espansione delle query sono:

  • Query long tail: per ricerche molto specifiche, ad esempio latte biologico ad alto contenuto proteico e basso contenuto di grassi per diabetici,il catalogo potrebbe non avere una corrispondenza perfetta. L'espansione delle query può restituire prodotti che corrispondono a parti dell'intento, ad esempio prodotti taggati con attributi o valori di attributo di latte adatto ai diabetici, latte ad alto contenuto proteico.
  • Prodotti alternativi: se gli utenti cercano un brand o un prodotto non presente nel catalogo, ad esempio caffè Starbucks 100 ml,l'espansione della query può suggerire brand di caffè alternativi disponibili per l'acquisto, evitando una ricerca senza risultati.

Le sezioni successive descrivono la funzionalità, il meccanismo di attivazione e le sfumature di configurazione della funzionalità di espansione delle query in Vertex AI Search per il commercio, con un focus specifico sul ruolo fondamentale del filtro canonico.

Meccanismo di attivazione dell'espansione delle query

La decisione di attivare l'espansione delle query o una determinata query di ricerca è automatizzata e si basa su una regola di filtro canonico rapidamente configurabile.

  • Condizione di attivazione: l'espansione delle query viene attivata solo se la ricerca iniziale con la query di filtro canonico produce meno di tre risultati di prodotto.
  • Soglia: questa soglia di 3 per impostazione predefinita può essere modificata. Funziona bene per la maggior parte dei casi d'uso di e-commerce, garantendo che l'espansione delle query venga attivata solo se e quando il set di risultati iniziale è effettivamente scarso.

Configurare l'espansione delle query nell'API

L'espansione delle query viene configurata in modo programmatico per richiesta utilizzando l'API nel seguente modo:

  • Configurazione API: controlli l'espansione delle query includendo l'oggetto queryExpansionSpec in SearchRequest.

  • Impostazioni: all'interno di queryExpansionSpec, imposta il campo condition su AUTO per attivare la funzionalità o su DISABLED per disattivarla, che è l'impostazione predefinita se non specificata.

  • Blocco: puoi impostare facoltativamente pinUnexpandedResults su true nella richiesta per assicurarti che le corrispondenze esatte per la query originale vengano visualizzate nella parte superiore dei risultati di ricerca, seguite dai risultati espansi. Per saperne di più, consulta la pagina relativa al blocco.

Configurare i filtri canonici

Affinché l'espansione della query venga attivata in modo efficace, devi configurare correttamente canonical_filter nella richiesta di ricerca.

Per implementare correttamente l'espansione delle query, è fondamentale comprendere i due parametri di filtro principali in una richiesta di ricerca: i filtri di primo livello e i filtri canonici.

  • Filtro di primo livello (filter): questo è il filtro principale applicato ai risultati di ricerca prima che vengano restituiti all'utente. Si tratta di una combinazione di due potenziali livelli:

    • Filtro aziendale/di base: regole predefinite applicate a tutte le ricerche, spesso senza input utente diretto dell'utente, ad esempio inStock=TRUE, category="groceries", storeId="XYZ".

    • Filtri per sfaccettature selezionati dall'utente: filtri applicati dinamicamente dall'utente durante l'interazione con l'interfaccia di ricerca, ad esempio selezionando filtri per sfaccettature per brand="Adidas", size="L".

  • Filtri canonici (canonical_filter): si tratta di un filtro speciale utilizzato esclusivamente dal modulo decisionale di espansione delle query. Il suo unico compito è definire la visualizzazione del catalogo in base alla quale viene valutata la condizione di attivazione dell'espansione della query (meno di cinque risultati).

Funzioni di filtro canoniche principali

Il filtro canonico è progettato per distinguere tra un risultato di ricerca organico di scarsa qualità e un insieme di risultati intenzionalmente ristretto dall'utente.

Scenario 1

  • Percorso dell'utente: l'utente cerca t-shirt e ottiene migliaia di risultati. Esiste un business_filter predefinito che, ad esempio, filtra solo i prodotti disponibili e quelli che corrispondono a un attributo personalizzato a livello di negozio. L'utente applica quindi i filtri per le sfaccettature brand="Adidas" e size="L", il che riduce il numero di risultati a due.
  • Se canonical_filter è uguale a filter: il sistema di decisione di espansione delle query vedrebbe solo due risultati e attiverebbe in modo errato l'espansione delle query, mostrando prodotti correlati ma non pertinenti, come le magliette Nike, che non rispettano il filtro esplicito dell'utente.
  • L'impostazione corretta è canonical_filter = business filter: la decisione di espandere la query deve essere presa in base alla query iniziale escludendo i filtri selezionati dall'utente.

Scenario 2

  • Percorso dell'utente: l'utente cerca maglietta Adidas con stampe grafiche nere e ottiene solo uno o due risultati, se presenti. Esiste un business_filter predefinito che, ad esempio, filtra solo i prodotti disponibili e quelli che corrispondono a un attributo personalizzato a livello di negozio.
  • Se canonical_filter non è impostato o non è configurato correttamente, la ricerca con il filtro canonico potrebbe trovare prodotti che corrispondono alla query, ma sono esauriti o provengono da un altro negozio, il che significa un valore diverso dell'attributo personalizzato a livello di negozio. In questo caso, l'espansione della query non viene attivata.
  • L'impostazione corretta è canonical_filter = business filter. La decisione di espansione della query troverebbe meno di tre prodotti per la query lunga specificata, quindi attiverebbe un'espansione della query e porterebbe i prodotti correlati alla query originale, ovvero i prodotti disponibili e corrispondenti all'attributo a livello di negozio. Pertanto, i risultati di ricerca verranno ampliati per includere una t-shirt nera con stampa grafica di un'altra marca, una t-shirt con stampa grafica di un altro colore o altri prodotti di t-shirt della marca nella query.

Best practice per l'espansione delle query

Il filtro canonico deve quasi sempre essere impostato in modo che sia identico al filtro di base o dell'attività. In questo modo, il modulo di espansione delle query valuta il potenziale della query rispetto alla stessa visualizzazione del catalogo generale che gli utenti vedono inizialmente prima di iniziare ad applicare i filtri.

Flusso di processo di ricerca ed espansione delle query end-to-end

Quando viene effettuata una richiesta di ricerca, si verificano diversi processi paralleli:

  • Richiesta ricevuta: l'API riceve la richiesta di ricerca contenente la query, il filter principale e il canonical_filter.

  • Ricerca della decisione di espansione della query: in parallelo, il modulo di decisione di espansione della query esegue una propria ricerca interna utilizzando la query combinata con il filtro canonico.

  • Controllo del conteggio dei risultati: il modulo controlla il numero di prodotti restituiti dalla ricerca interna.

    • Se i risultati sono cinque o più: l'espansione della query non viene attivata. I risultati di ricerca standard passano alla fase di filtraggio finale.
    • Se i risultati sono meno di cinque: viene attivata l'espansione delle query . Il modello allenta sistematicamente la query per trovare prodotti correlati. Ad esempio, il modello potrebbe trovare lo smartphone Pixel 5, gli smartphone Pixel 4, gli auricolari Pixel o anche gli smartphone Samsung.
  1. Filtro finale: il set di prodotti (il set originale o quello espanso dall'espansione della query) viene passato alla fase finale. In questo caso, il filtro di primo livello, contenente le regole aziendali e le sfaccettature selezionate dall'utente, viene applicato rigorosamente.
  • Risposta inviata: l'elenco filtrato finale dei prodotti viene restituito nella risposta dell'API.

Caso d'uso avanzato dell'attivazione dell'espansione delle query selettiva

Puoi configurare strategicamente i filtri per attivare o disattivare l'espansione delle query per parti specifiche del catalogo.

Considera lo scenario di un catalogo di grandi dimensioni contenente generi alimentari, elettronica e abbigliamento alla moda. Per uno scenario di questo tipo, devi tenere a mente i seguenti aspetti.

Obiettivo

Attiva l'espansione delle query per le query relative a generi alimentari difficili da trovare o scarsi, ma mostra zero risultati per gli articoli di elettronica o di moda. L'esigenza aziendale è di abilitare l'espansione delle query solo in modo selettivo nella sezione dei generi alimentari.

Configurazione

Per questo scenario di caso d'uso, l'espansione selettiva delle query può essere configurata nel seguente modo:

  • canonical_filter: impostalo su ampio. Deve includere tutte le categorie: alimentari, elettronica e moda, oltre a eventuali regole di base come la disponibilità di magazzino, che definiscono il filtro canonico con category="groceries" OR category="electronics" OR category="fashion") AND inStock=TRUE.
  • filter: impostalo su ristretto, in base al contesto dell'utente. Per un utente nella sezione del supermercato, il filtro sarebbe category="groceries" AND inStock=TRUE.

Come funziona

L'espansione selettiva della query funziona in questo scenario come segue:

  • L'utente cerca "iPhone 20": il modulo di espansione della query utilizza il filtro canonico generico, trova i modelli di iPhone esistenti (< 5 risultati) e decide di non attivare l'espansione della query. I risultati di ricerca standard (iPhone esistenti) vengono quindi passati al filtro principale, che li blocca perché category="electronics" non corrisponde a category="groceries". L'utente visualizza correttamente zero risultati.
  • L'utente cerca *latte per diabetici ad alto contenuto proteico*:il modulo di espansione della query utilizza la corrispondenza generica canonical_filter e trova meno di 5 risultati, attivando così l'espansione della query tramite la ricerca di prodotti lattiero-caseari correlati. Questi prodotti vengono passati al filtro principale. Poiché corrispondono a category="groceries", questi prodotti vengono restituiti correttamente all'utente.

Manipolando l'ambito di canonical_filter (la visualizzazione del processo decisionale) e di filter principale (la visualizzazione dell'output finale), ottieni un controllo preciso sull'esperienza di ricerca.

Set di dati di esempio

Questa pagina utilizza come esempio il seguente set di dati. Espandilo per visualizzare i campi all'interno del set di dati della descrizione del prodotto di esempio.

Set di dati di prodotto di esempio

ID titolo brand categorie price_info.price
"nest_mini_2nd_gen" "Nest Mini (2ª generazione.)" ["Google", "Nest"] ["Nest > speaker e display"] 49 ₪
"nest_audio" "Nest Audio" ["Google", "Nest"] ["Nest > speaker e display"] 99,99
"nest_hub_max" "Nest Hub Max" ["Google", "Nest"] ["Nest > speaker e display"] 229,00
"nest_hub" "Nest Hub" ["Google", "Nest"] ["Nest > speaker e display"] 88,99
"google_home_max" "Google Home Max" ["Google", "Nest"] ["Nest > speaker e display"] 299.00
"google_home_mini" "Google Home Mini" ["Google", "Nest"] ["Nest > speaker e display"] 49 ₪
"google_pixel_5" "Google Pixel 5" ["Google", "Pixel"] ["Pixel > smartphone"] 699,00
"google_pixel_4a_with_5g" "Google Pixel 4a con 5G" ["Google", "Pixel"] ["Pixel > smartphone"] 499.00
"google_pixel_4a" "Smartphone Google Pixel 4a" ["Google", "Pixel"] ["Pixel > smartphone"] 349,00
"google_pixel_stand" "Google Pixel Stand" ["Google", "Pixel"] ["Pixel > featured accessories"] 79,00
"google_pixel_buds" "Google Pixel Buds" ["Google", "Pixel"] ["Pixel > featured accessories"] 179,00
"google_pixel_5_case" "Custodia per Google Pixel 5" ["Google", "Pixel"] ["Pixel > featured accessories"] 40,00
"google_pixel_4a_5g_case" "Custodia per Google Pixel 4a (5G)" ["Google", "Pixel"] ["Pixel > featured accessories"] 40,00
"google_pixel_4a_case" "custodia per Google Pixel 4a" ["Google", "Pixel"] ["Pixel > featured accessories"] 40,00

Espansione della query

L'espansione delle query aumenta il richiamo per i termini di query con pochi risultati, in particolare per le query long-tail.

Questa funzionalità di ricerca è basata su una specifica che determina le condizioni di espansione delle query. Include un'opzione pinUnexpandedResults disattivata per impostazione predefinita. Se impostato su true, vengono visualizzati i prodotti non espansi nella parte superiore dei risultati di ricerca. La parte superiore è seguita dai risultati espansi.

Java

import com.google.cloud.retail.v2.SearchRequest;
import com.google.cloud.retail.v2.SearchRequest.QueryExpansionSpec;
import com.google.cloud.retail.v2.SearchRequest.QueryExpansionSpec.Condition;
import com.google.cloud.retail.v2.SearchResponse;
import com.google.cloud.retail.v2.SearchServiceClient;

public static void searchProductsWithQueryExpansion(String query, int pageSize,
    Condition condition) throws IOException, InterruptedException {
  QueryExpansionSpec queryExpansionSpec = QueryExpansionSpec.newBuilder()
      .setCondition(condition)
      .build();

  SearchRequest searchRequest = SearchRequest.newBuilder()
      .setPlacement(DEFAULT_SEARCH_PLACEMENT_NAME)
      .setBranch(DEFAULT_BRANCH_NAME)
      .setVisitorId(VISITOR_ID)
      .setQuery(query)
      .setPageSize(pageSize)
      .setQueryExpansionSpec(queryExpansionSpec)
      .build();

  try (SearchServiceClient searchClient = SearchServiceClient.create()) {
    SearchResponse response = searchClient.search(searchRequest).getPage().getResponse();
    System.out.println("Search response: " + searchResponse);
  }
}

Ad esempio, se cerchi Google Pixel 5 senza espansione della query, il risultato è limitato agli ID google_pixel_5. Tuttavia, con l'espansione delle query, potresti ottenere anche gli ID google_pixel_4a_with_5g, google_pixel_4a e google_pixel_5_case nel set di dati di esempio della descrizione del prodotto.