Ottenere risultati di ricerca

Questa pagina mostra come visualizzare l'anteprima dei risultati di ricerca utilizzando la console Google Cloud e come ottenere i risultati di ricerca utilizzando l'API.

Inoltre, anziché utilizzare la UI dell'app web, puoi effettuare chiamate API e integrarle nel server o nell'applicazione. Questa pagina include esempi di codice per come eseguire query di ricerca utilizzando le librerie client gRPC con un account di servizio.

Ottenere risultati di ricerca

Puoi visualizzare l'anteprima dei risultati di ricerca dalla console Google Cloud o ottenere i risultati di ricerca utilizzando l'API.

Console

Per utilizzare la console Google Cloud per visualizzare l'anteprima dei risultati di ricerca per un'app con dati strutturati o non strutturati, segui questi passaggi:

  1. Apri la pagina Anteprima nella console.
  2. Digita una query di ricerca.
    1. Se hai attivato il completamento automatico nel passaggio 1, vedrai un elenco di suggerimenti per il completamento automatico sotto la barra di ricerca mentre digiti.
  3. (Facoltativo) Se hai collegato più datastore alla tua app, ma vuoi risultati solo da un datastore specifico, seleziona il datastore da cui ottenere i risultati.
  4. Fai clic su Invio per inviare la query.
    1. Sotto la barra di ricerca viene visualizzato un elenco di risultati di ricerca.
    2. Se non è definita alcuna mappatura degli attributi nella pagina Configurazioni, ogni risultato di ricerca viene visualizzato come un elenco di nomi e valori degli attributi non elaborati.
    3. Se sono stati salvati mapping degli attributi nella pagina Configurazioni, i risultati di ricerca mostrano le stesse immagini visualizzate nell'anteprima della pagina Configurazioni.
  5. Se sono state specificate sfaccettature nella pagina Configurazioni, queste vengono visualizzate nello stesso modo.
  6. Fai clic sulla freccia sotto l'elenco dei risultati per caricare la pagina successiva.

REST

Per utilizzare l'API per ottenere i risultati di ricerca per un'app con dati strutturati o non strutturati, utilizza il metodo engines.servingConfigs.search:

  1. Trova l'ID app. Se hai già l'ID app, vai al passaggio successivo.

    1. Nella console Google Cloud , vai alla pagina Gemini Enterprise.

      Vai ad App

    2. Nella pagina App, trova il nome della tua app e recupera il relativo ID dalla colonna ID.

  2. Visualizza l'anteprima dei risultati di ricerca.

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \
    -d '{
    "query": "QUERY",
    "userPseudoId": "USER_PSEUDO_ID",
    "pageSize": "PAGE_SIZE",
    "offset": "OFFSET",
    "orderBy": "ORDER_BY",
    "filter": "FILTER",
    "boostSpec": "BOOST_SPEC",
    "facetSpec": "FACET_SPEC",
    "queryExpansionSpec": "QUERY_EXPANSION_SPEC",
    "spellCorrectionSpec": "SPELL_CORRECTION_SPEC",
    "contentSearchSpec": "CONTENT_SEARCH_SPEC",
    "dataStoreSpecs": [{"DATA_STORE_SPEC"}],
    }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto.
    • APP_ID: l'ID dell'app per cui vuoi eseguire una query.
    • QUERY: il testo della query da cercare.
    • USER_PSEUDO_ID: una stringa con codifica UTF-8 che funge da identificatore pseudonimizzato univoco che monitora gli utenti. Può avere una lunghezza massima di 128 caratteri. Google consiglia vivamente di utilizzare questo campo perché migliora il rendimento del modello e la qualità della personalizzazione. Puoi utilizzare un cookie HTTP per questo campo, che identifica in modo univoco un visitatore su un singolo dispositivo. Ecco alcuni aspetti importanti da considerare:

      • Questo identificatore non cambia quando il visitatore accede o esce da un sito web.
      • Questo campo non deve essere impostato sullo stesso identificatore per più utenti. In caso contrario, l'utilizzo dello stesso ID utente per più utenti può combinare le cronologie degli eventi di utenti diversi e ridurre la qualità del modello.
      • Questo campo non deve includere informazioni che consentono l'identificazione personale (PII).
      • Per una determinata richiesta di ricerca o navigazione, questo campo deve essere mappato al campo userPseudoId corrispondente negli eventi utente.

      Per ulteriori informazioni, vedi userPseudoId.

    • PAGE_SIZE: il numero di risultati restituiti dalla ricerca. La dimensione massima consentita della pagina dipende dal tipo di dati. Le dimensioni della pagina superiori al valore massimo vengono forzate al valore massimo.
    • OFFSET: facoltativo. L'indice iniziale dei risultati. Il valore predefinito è 0.

      Ad esempio, se l'offset è 2, la dimensione della pagina è 10 e ci sono 15 risultati da restituire, i risultati da 2 a 11 vengono restituiti nella prima pagina.

    • ORDER_BY: facoltativo. L'ordine in cui vengono disposti i risultati.

    • FILTER: facoltativo. Un campo di testo per filtrare la ricerca utilizzando un'espressione di filtro. Il valore predefinito è una stringa vuota, il che significa che non viene applicato alcun filtro.

      Esempio: color: ANY("red", "blue") AND score: IN(*, 100.0e)

      Per maggiori informazioni, vedi Filtrare la ricerca di dati strutturati o non strutturati.

    • BOOST_SPEC: facoltativo. Una specifica per aumentare o diminuire la visibilità dei documenti. Valori:

      • BOOST: un numero in virgola mobile nell'intervallo [-1,1]. Quando il valore è negativo, i risultati vengono declassati (vengono visualizzati più in basso nei risultati). Quando il valore è positivo, i risultati vengono promossi (vengono visualizzati più in alto nei risultati).
      • CONDITION: un'espressione di filtro di testo per selezionare i documenti a cui viene applicato il boost. Il filtro deve restituire un valore booleano.

      Per scoprire di più sul boost per la ricerca strutturata, consulta Migliorare i risultati di ricerca.

    • FACET_SPEC: facoltativo. Una specifica del facet per eseguire la ricerca con facet.

    • QUERY_EXPANSION_SPEC: facoltativo. Una specifica per determinare in quali condizioni deve verificarsi l'espansione della query. Il valore predefinito è DISABLED.

    • SPELL_CORRECTION_SPEC: facoltativo. Una specifica per determinare in quali condizioni deve essere eseguita la correzione ortografica. Il valore predefinito è AUTO.

    • CONTENT_SEARCH_SPEC: facoltativo. Per ottenere snippet, risposte estrattive, segmenti estrattivi e riepiloghi della ricerca. Solo per dati non strutturati. Per ulteriori informazioni, vedi:

    • DATA_STORE_SPEC: filtri per un datastore specifico in cui eseguire la ricerca. Può essere utilizzato se l'app di ricerca è collegata a più datastore. Per maggiori informazioni, consulta DataStoreSpec.

    • Visualizzazione dei risultati della ricerca guidata nella risposta di ricerca:

      I risultati della ricerca guidata vengono restituiti con le risposte di ricerca per la ricerca strutturata e non strutturata. Il risultato della ricerca guidata contiene un elenco di coppie chiave-valore degli attributi estratte in base ai documenti dei risultati di ricerca. In questo modo, gli utenti possono perfezionare i risultati di ricerca utilizzando alcune chiavi e alcuni valori degli attributi come filtri.

      In questa risposta di esempio, il colore verde è stato utilizzato per perfezionare i risultati di ricerca inviando una nuova richiesta di ricerca con il campo del filtro specificato come _gs.color: ANY("green"):

      {
      "guidedSearchResult": {
        "refinementAttributes": [
          {
            "attributeKey": "_gs.color",
            "attributeValue": "green"
          },
          {
            "attributeKey": "_gs.category",
            "attributeValue": "shoe"
          }
        ]
      }
      }
      

Ottenere i punteggi di pertinenza dei documenti con i risultati di ricerca

I punteggi di pertinenza dei documenti si basano sulla somiglianza della query con il documento. I punteggi vengono inseriti in 11 bucket nell'intervallo: 0, 0,1, 0,2, … a 1,0. Più alto è il punteggio, più pertinente è il documento.

Prendi in considerazione i punteggi di pertinenza dei documenti per questi casi d'uso:

  • Filtraggio post-ricerca in base al punteggio di pertinenza per rimuovere i risultati non pertinenti

  • Classifica post-ricerca o come input per altre applicazioni

  • Debug: i punteggi di pertinenza possono fornire informazioni sul motivo per cui vengono restituiti alcuni risultati di ricerca

Per ogni risultato di ricerca può essere restituito un punteggio di pertinenza:

  "results": [
    {
      "id": "DOCUMENT_ID",
      "document": {
      ...
      },
      "modelScores": {
        "relevance_score": {
          "values": [
            DOCUMENT-RELEVANCE-SCORE
          ]
        }
      }
    },
    ...

Vedi anche il comando di esempio nella procedura riportata di seguito.

Prima di iniziare:assicurati che l'app di ricerca sia associata a un datastore strutturato o non strutturato.

REST

Per richiedere che i punteggi di pertinenza dei documenti vengano restituiti con i risultati di ricerca, utilizza il metodo engines.servingConfigs.search come segue:

  1. Trova l'ID app. Se hai già l'ID app, vai al passaggio successivo.

    1. Nella console Google Cloud , vai alla pagina Gemini Enterprise.

      Vai ad App

    2. Nella pagina App, trova il nome della tua app e recupera il relativo ID dalla colonna ID.

  2. Esegui il seguente comando curl per ottenere i punteggi restituiti con i risultati di ricerca.

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \
    -d '{
         "servingConfig": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search",
         "query": "QUERY",
         "relevanceScoreSpec": {
           "returnRelevanceScore": true
         }
    }'
    
    • PROJECT_ID: l'ID progetto.
    • APP_ID: l'ID dell'app per cui vuoi eseguire una query.
    • QUERY: il testo della query da cercare.

Il riepilogo delle ricerche varia in base al modello

Se generi riepiloghi della ricerca per le tue query, potresti notare che i riepiloghi differiscono tra i risultati della console e quelli dell'API. Se visualizzi questo messaggio, il motivo è probabilmente che la console utilizza un modello LLM diverso dall'API. Gli esempi di curl e di codice in questa pagina utilizzano il modello LLM stabile.

  • Per modificare o visualizzare il modello LLM utilizzato nella pagina Anteprima dell'interfaccia utente, vai alla pagina Configurazioni > scheda UI per la tua app.

  • Per le chiamate di metodi, il modello stabile è quello predefinito. Per utilizzare un modello LLM diverso dal modello stabile, consulta Specificare il modello di riepilogo e Specificare il modello di risposta.