Visualizzare i risultati di ricerca

Questa pagina descrive le query di base con la ricerca, tra cui ricerche con query di testo, ricerche di navigazione, paginazione, ottimizzazione e risultati personalizzati.

Non memorizzare mai nella cache i risultati personalizzati di un utente finale e non restituire mai risultati personalizzati a un altro utente finale.

La pertinenza è diversa dalla corrispondenza. La corrispondenza consiste nel trovare nell'indice i prodotti candidati che corrispondono alla query di ricerca dell'utente. La pertinenza, invece, è un grado di corrispondenza. Deve essere attribuito un ranking a questi prodotti in modo da soddisfare al meglio le intenzioni e le esigenze dell'utente. Vertex AI Search per il retail utilizza tecniche per migliorare la corrispondenza e la pertinenza al fine di offrire un'esperienza di ricerca complessiva migliore per gli utenti, che soddisfi le esigenze dei retailer.

Per impostazione predefinita, Vertex AI Search for Retail utilizza la pertinenza nella ricerca. Tuttavia, la ricerca è ottimizzata per mostrare anche gli elementi marginalmente pertinenti più in alto nei risultati di ricerca, in modo da fornire ai rivenditori risultati di ricerca più mirati e aumentare il potenziale di conversione degli eventi utente.

Queste funzionalità di ricerca aggiuntive ottimizzano l'algoritmo di pertinenza predefinito, fornendo funzionalità non predefinite personalizzate in base al profilo di utilizzo di ciascun rivenditore, tra cui:

  • Opzioni per ordinare i risultati, ad esempio per prezzo, articoli con le valutazioni più alte o più venduti. La ricerca non predefinita è personalizzata per restituire risultati di ricerca specifici con le varianti di prodotto corrette. Ad esempio, per mostrare la variante più economica o più costosa quando l'ordinamento avviene in base al prezzo.

  • Applicazione automatica di un filtro di pertinenza più stringente per gli eventi utente non predefiniti.

  • Attivazione di controlli di boost/bury regolabili per perfezionare i risultati di ricerca.

La ricerca offre sia funzionalità di ricerca di query di testo sia di ricerca di navigazione.

Nel caso d'uso di ricerca con query di testo, un acquirente potrebbe inserire una query basata sul testo sul tuo sito. La ricerca restituisce una risposta contenente i prodotti che rientrano nei parametri dei controlli che hai configurato, ordinati in base alla pertinenza e alla massimizzazione delle entrate.

Nel caso d'uso di navigazione, un acquirente potrebbe andare al menu del tuo sito e accedere a una categoria di prodotti specifica. La Ricerca sceglie automaticamente l'ordinamento che massimizza le entrate in base alle tendenze e al comportamento degli utenti. I risultati di ricerca possono essere perfezionati ulteriormente in base ai controlli che hai configurato.

Sia le richieste di ricerca di testo che quelle di ricerca tramite navigazione utilizzano il metodo servingConfigs.search.

Ricerche di query di testo

Quando un utente inserisce una query di testo per eseguire una ricerca sul tuo sito, la ricerca ordina i potenziali risultati di ricerca in base a pertinenza, popolarità, possibilità di acquisto e personalizzazione.

La Ricerca considera una richiesta servingConfigs.search come una richiesta di ricerca basata sul testo se ha un campo query non vuoto.

Quando carichi gli eventi utente, invia gli eventi di ricerca di query di testo generati dalla ricerca come eventi utente search. Se l'evento contiene un campo userEvent.searchQuery non vuoto e un campo userEvent.pageCategories vuoto, la ricerca lo considera un evento di ricerca basata sul testo.

Sfogliare le ricerche

La visualizzazione Sfoglia utilizza la navigazione del sito per produrre risultati di ricerca di uguale pertinenza, ordinati in base agli articoli più venduti. La Ricerca utilizza l'AI per ottimizzare l'ordinamento dei risultati di ricerca tenendo conto di popolarità, possibilità di acquisto e personalizzazione.

Le richieste di pubblicazione e gli eventi con un campo query vuoto e campi page_categories non vuoti sono considerati richieste di navigazione ed eventi utente. Il campo page_categories specifica la pagina di navigazione stessa. Quando il metodo servingConfigs.search invia una richiesta, la ricerca la considera una richiesta di ricerca di navigazione se il campo query è vuoto. In questo caso, i risultati si basano sui campi filter e pageCategories, nonché su un'ulteriore ottimizzazione e personalizzazione, se disponibile.

Per risultati di ricerca di navigazione corretti, tieni presente quanto segue:

  • I valori pageCategories e filter nelle richieste di ricerca devono corrispondere esattamente ai valori pageCategories e filter negli eventi utente caricati. Valori filter negli eventi utente caricati. Se i parametri nelle richieste non corrispondono a quelli negli eventi, il modello di ricoordinamento in base ai clic appreso dagli eventi non avrà un buon rendimento per questa query specifica e influirà negativamente sulla qualità dei risultati.

  • Vertex AI Search per il retail classifica un evento utente search come evento basato sulla navigazione se ha un campo userEvent.searchQuery vuoto e un campo userEvent.pageCategories non vuoto. Per questo motivo, devi assicurarti di inviare gli eventi di navigazione generati da Vertex AI Search for Retail come eventi utente search al momento del caricamento.

  • Un filtro di navigazione deve essere valido e indicare per ogni query di navigazione quali prodotti appartengono alla categoria di prodotto in cui l'utente sta navigando. Per realizzare questa configurazione, l'ID categoria deve essere definito sia nei campi filter sia in page_category. Ad esempio, se vuoi che i risultati di ricerca abbiano come target la categoria Casa e giardino. Innanzitutto, avere un solo valore filter di "in-stock" non perfeziona la ricerca abbastanza da fornire risultati di ricerca ottimali. Per fornire risultati di ricerca limitati a Casa e giardino, non devi solo impostare "Home \& Garden" nella categoria di pagina, ma anche nel filtro con categories: ANY("Home & Garden"). Se non definisci la categoria nella parte del filtro, i risultati di ricerca potrebbero essere troppo ampi e includere molti articoli non correlati a Casa e giardino.

Puoi impostare la categoria in entrambi, come in questo esempio:

JSON

page_category: "Home & Garden"
filter: "(availability: ANY("IN_STOCK")) AND (categories: ANY("Home & Garden"))"

In caso contrario, poiché la visualizzazione dei prodotti funziona con query di stringhe vuote, i prodotti di una determinata categoria non verranno visualizzati automaticamente nei risultati per una determinata categoria di pagina. In altre parole, se l'utente finale naviga senza specificare nulla utilizzando una query di testo, i risultati di ricerca potrebbero non produrre risultati mirati in modo efficace, anche se l'utente accede a una pagina della categoria.

Utilizza le richieste di ricerca per ottenere risultati sia per le ricerche di testo sia per le ricerche di navigazione. Per effettuare una richiesta di ricerca, utilizza il metodo servingConfigs.search.

Tutte le richieste di ricerca richiedono placement, che identifica il nome completo della risorsa della configurazione di pubblicazione che verrà utilizzata. La configurazione di pubblicazione determina quali impostazioni e controlli associati influiscono sui risultati di ricerca.

Le richieste di ricerca di query di testo richiedono un campo query non vuoto.

Le richieste di ricerca nella scheda richiedono un campo pageCategories non vuoto.

Java

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

public static void searchProducts(String query) throws IOException, InterruptedException {
  SearchRequest searchRequest = SearchRequest.newBuilder()
      .setPlacement(DEFAULT_SEARCH_PLACEMENT_NAME)
      .setBranch(DEFAULT_BRANCH_NAME)
      .setVisitorId(VISITOR_ID)
      .setQuery(query)
      .build();

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

Per impostazione predefinita, viene restituito un numero ragionevole di risultati ordinati per pertinenza.

Per ottenere gli attributi del prodotto restituiti con la risposta di ricerca, assicurati di fornire i valori degli attributi quando importi i dati del tuo catalogo. Product ha attributi di sistema predefiniti come marca, colore e taglia per i quali puoi fornire valori. Puoi anche includere attributi personalizzati che definisci con Product.attributes.

Tutorial sulle query

Questo tutorial ti mostra come inviare una query di ricerca basata sul testo al servizio Vertex AI Search per il retail e analizzare la risposta.


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

Procedura guidata


Impaginazione

Utilizza la paginazione per ridurre i tempi di ricerca e le dimensioni delle risposte inviate.

Tutorial sull'impaginazione

Questo tutorial mostra come controllare l'impaginazione in una richiesta di ricerca basata sul testo. Quando un acquirente cerca prodotti in un negozio, può migliorare la navigazione tra i risultati di ricerca. Ad esempio, possono limitare il numero di elementi nella risposta della ricerca utilizzando la funzionalità di dimensione della pagina o passare alla pagina che preferiscono utilizzando la funzionalità di offset.


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

Procedura guidata


Paginate

Per passare da una pagina all'altra, utilizza page_token o offset, in base al tuo caso d'uso.

Per passare alla pagina successiva, puoi utilizzare page_token. Ad esempio, supponiamo che tu invii il seguente SearchRequest.

JSON

{
  placement: 'projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/placements/default_search'
  visitor_id: 'VISITOR_ID'
  query: 'shoes'
  page_size: 5
}

Da SearchResponse, puoi ottenere i prodotti risultanti con la pertinenza migliore tra i primi 5, insieme a un next_page_token.

JSON

{
  results: [
    products{...}, products{...}, products{...}, products{...}, products{...}
  ]
  next_page_token: "wY4ETNkBDOlVjZ0YWLzUmM40SMhVjMtADMwATL5UGN5MGZlVDJaIQ5LaYsQUw9fC6lIwgE1EgC"
  total_size: 100
  search_token: "NtQKDAiXt4_3BRDCg_jnARABGiQ1ZWRjOTRlOC0wMDAwLTI1YTEtODJlMy1mNGY1ZTgwZDUxOGM"
}

Per ottenere i prodotti del risultato con la pertinenza successiva (dalla sesta alla decima), imposta page_token utilizzando gli stessi placement, visitor_id e query di next_page_token del SearchResponse precedente.

Java

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

public static void searchProducts_withNextPageToken(String query, int pageSize)
    throws IOException, InterruptedException {
  try (SearchServiceClient searchClient = SearchServiceClient.create()) {
    SearchRequest firstRequest = SearchRequest.newBuilder()
        .setPlacement(DEFAULT_SEARCH_PLACEMENT_NAME)
        .setBranch(DEFAULT_BRANCH_NAME)
        .setVisitorId(VISITOR_ID)
        .setQuery(query)
        .setPageSize(pageSize)
        .build();

    SearchResponse firstResponse = searchClient.search(firstRequest).getPage()
        .getResponse();
    System.out.println("First search response: " + firstResponse);

    SearchRequest secondRequest = SearchRequest.newBuilder()
        .setPlacement(DEFAULT_SEARCH_PLACEMENT_NAME)
        .setBranch(DEFAULT_BRANCH_NAME)
        .setVisitorId(VISITOR_ID)
        .setQuery(query)
        .setPageSize(pageSize)
        .setPageToken(firstResponse.getNextPageToken())
        .build();

    SearchResponse secondResponse = searchClient.search(secondRequest).getPage()
        .getResponse();
    System.out.println("Second search response: " + secondResponse);
  }
}

In questo esempio, SearchRequest ha il seguente aspetto:

JSON

{
  placement: 'projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/placements/default_search'
  visitor_id: 'VISITOR_ID'
  query: 'shoes'
  page_size: 5
  page_token: "wY4ETNkBDOlVjZ0YWLzUmM40SMhVjMtADMwATL5UGN5MGZlVDJaIQ5LaYsQUw9fC6lIwgE1EgC"
}

In altri casi, invece di spostarti da una pagina all'altra o di ottenere risultati con la massima pertinenza, puoi passare direttamente a una determinata posizione con offset.

Java

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

public static void searchProducts_withOffset(String query, int pageSize,
    int offset) throws IOException, InterruptedException {
  SearchRequest searchRequest = SearchRequest.newBuilder()
      .setPlacement(DEFAULT_SEARCH_PLACEMENT_NAME)
      .setBranch(DEFAULT_BRANCH_NAME)
      .setVisitorId(VISITOR_ID)
      .setQuery(query)
      .setPageSize(pageSize)
      .setOffset(offset)
      .build();

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

Ad esempio, se vuoi la decima pagina dei risultati quando la dimensione di pagina è 5, puoi impostare offset su 45, che viene calcolato con (10 - 1) * 5.

JSON

{
  placement: 'projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/placements/default_search'
  visitor_id: 'VISITOR_ID'
  query: 'shoes'
  page_size: 5
  offset: 45
}

Livelli di rendimento nella Ricerca

La Ricerca offre diversi livelli di rendimento che migliorano progressivamente i risultati. Ad esempio, per i casi d'uso di ricerca di query di testo, i risultati potrebbero essere basati esclusivamente sulla pertinenza. Man mano che sblocchi livelli di rendimento più avanzati, la ricerca può restituire risultati basati su pertinenza, popolarità, ottimizzazione delle entrate e personalizzazione.

La rete di ricerca sblocca automaticamente i livelli di prestazioni più elevati quando carichi i dati del catalogo e degli eventi utente che soddisfano i requisiti minimi di ciascun livello.

La pagina Qualità dei dati della console Search for Retail fornisce una valutazione dei requisiti che hai soddisfatto per ogni livello. Per ulteriori informazioni sull'utilizzo di questa pagina per visualizzare la qualità dei dati e i livelli di rendimento nella ricerca, consulta Sbloccare i livelli di rendimento nella ricerca.

Valutare la ricerca di testo e i risultati di navigazione

Prima di aggiornare il codice del tuo sito web per richiedere la ricerca di testo o sfogliare i risultati di ricerca, puoi visualizzare l'anteprima dei risultati per verificare che la configurazione di pubblicazione funzioni come previsto.

Per ulteriori informazioni sulle configurazioni di pubblicazione, consulta Informazioni sulle configurazioni di pubblicazione.

Puoi visualizzare l'anteprima dei risultati della configurazione di pubblicazione dalla pagina Valuta oppure dalla pagina Dettagli di una configurazione di pubblicazione nella console e facendo clic sulla scheda Valuta. I passaggi riportati di seguito illustrano come visualizzare l'anteprima dalla pagina Valuta.

Per visualizzare l'anteprima dei risultati restituiti dalla configurazione di pubblicazione:

  1. Vai alla pagina Valuta nella console Ricerca per la vendita al dettaglio.

    Vai alla pagina Valuta

  2. Fai clic sulla scheda Ricerca.

  3. Seleziona la configurazione di pubblicazione di cui vuoi visualizzare l'anteprima.

  4. Seleziona il ramo del catalogo contenente il catalogo di cui vuoi visualizzare l'anteprima.

  5. (Facoltativo) Inserisci un ID visitatore per visualizzare l'anteprima dei risultati di ricerca per quell'utente.

  6. (Facoltativo) Inserisci un ID utente per visualizzare l'anteprima dei risultati di ricerca per quell'utente.

  7. (Facoltativo) Inserisci un'ora di ricerca per visualizzare l'anteprima dei risultati di ricerca che verrebbero visualizzati all'ora specificata.

    Ad esempio, se hai promosso determinati prodotti per il Black Friday, puoi vedere i risultati come appariranno quel giorno.

  8. (Facoltativo) Seleziona i facet da visualizzare accanto ai risultati di ricerca e fai clic su Ok per applicarli.

    I parametri selezionati vengono utilizzati per generare un elenco di filtri per parametri visualizzati in Aggiungi parametri dopo l'esecuzione della ricerca iniziale. Questi filtri delle sfaccettature possono includere sfaccettature diverse da quelle selezionate in questo passaggio, ad esempio le sfaccettature dinamiche.

  9. Inserisci una query di ricerca basata sul testo per visualizzare l'anteprima dei risultati di ricerca corrispondenti.

  10. Fai clic su Anteprima ricerca o premi Invio in un campo di immissione per visualizzare i risultati.

    I risultati di ricerca vengono visualizzati con le miniature disponibili.

    Se la ricerca attiva un controllo di reindirizzamento, viene visualizzata una notifica che mostra l'URI di reindirizzamento.

  11. (Facoltativo) Fai clic sull'icona Griglia o sull'icona Elenco per modificare la modalità di visualizzazione dei risultati di ricerca nell'anteprima.

  12. (Facoltativo) Se hai selezionato i facet da visualizzare accanto ai risultati, seleziona uno o più valori di facet dall'elenco dei facet per filtrare i risultati in base a questi valori. I risultati vengono aggiornati automaticamente al momento della selezione.

    Quando selezioni più valori della stessa espressione, questi vengono applicati come farebbe un operatore OR, mentre i valori di espressioni diverse vengono applicati come farebbe un operatore AND. Ad esempio, dopo aver selezionato le sfaccettature colore e i valori "blu" e "oro", nonché i valori materiale "cotone" e "poliestere". I risultati di ricerca devono avere "blu" o "oro" come attributo e devono avere anche "cotone" o "poliestere" come attributo.

Sfoglia

  1. Vai alla pagina Valuta nella console Ricerca per la vendita al dettaglio.

    Vai alla pagina Valuta

  2. Fai clic sulla scheda Sfoglia.

  1. Seleziona la configurazione di pubblicazione di cui vuoi visualizzare l'anteprima.

  2. Seleziona il ramo del catalogo contenente il catalogo di cui vuoi visualizzare l'anteprima.

  3. (Facoltativo) Inserisci un ID visitatore per visualizzare l'anteprima dei risultati per quell'utente.

  4. (Facoltativo) Inserisci un ID utente per visualizzare l'anteprima dei risultati per quell'utente.

  5. Per visualizzare l'anteprima dei risultati con l'aggiunta di un filtro specifico, invia una stringa di filtro. Utilizza la sintassi dell'espressione di filtro specificata nella documentazione di Filtro.

  6. (Facoltativo) Inserisci un orario di navigazione per visualizzare l'anteprima dei risultati che verranno visualizzati all'ora specificata.

    Ad esempio, se hai promosso determinati prodotti per un evento di picco delle vendite, puoi vedere i risultati come apparirebbero quel giorno.

  7. Inserisci la categoria di pagine per cui stai testando i risultati di navigazione.

  8. (Facoltativo) Seleziona i facet da visualizzare accanto ai risultati e fai clic su Ok per applicarli.

    I valori selezionati vengono utilizzati per generare un elenco di filtri delle sfaccettature visualizzato in Aggiungi sfaccettature dopo l'esecuzione della ricerca iniziale. Questi filtri delle sfaccettature possono includere sfaccettature diverse da quelle selezionate in questo passaggio, ad esempio le sfaccettature dinamiche.

  9. Fai clic su Sfoglia anteprima o premi Invio in un campo di immissione per visualizzare i risultati.

    I risultati vengono visualizzati con le miniature disponibili.

  10. (Facoltativo) Fai clic sull'icona Griglia o sull'icona Elenco per modificare la modalità di visualizzazione dei risultati nell'anteprima.

  11. (Facoltativo) Se hai selezionato i facet da visualizzare accanto ai risultati, seleziona uno o più valori di facet dall'elenco dei facet per filtrare i risultati in base a questi valori. I risultati vengono aggiornati automaticamente al momento della selezione.

    Quando selezioni più valori della stessa espressione, questi vengono applicati come farebbe un operatore OR, mentre i valori di espressioni diverse vengono applicati come farebbe un operatore AND. Ad esempio, dopo aver selezionato le sfaccettature color e material, puoi filtrare i risultati di ricerca selezionando i valori di colore "blu" e "oro" e i valori del materiale "cotone" e "poliestere". I risultati devono avere "blu" o "oro" come attributo e devono avere anche "cotone" o "poliestere" come attributo.

Per visualizzare la pagina Dettagli della configurazione di pubblicazione di cui stai visualizzando l'anteprima, fai clic su Visualizza configurazione di pubblicazione nel campo Seleziona configurazione di pubblicazione.