Migliorare i risultati di ricerca

Puoi specificare condizioni di boost nella richiesta di ricerca per promuovere o retrocedere determinati documenti nei risultati di ricerca. Quando un documento soddisfa le condizioni specificate, vengono applicati i valori di boost e i risultati vengono ordinati di conseguenza. Puoi anche specificare valori numerici e valori timestamp personalizzati che ti consentono di ordinare i risultati in base a parametri come popolarità e agibilità.

La specifica di boost in una richiesta di ricerca è diversa da un controllo del boost collegato a una configurazione di pubblicazione. La specifica del boost nel boostSpec campo sostituisce il controllo del boost definito nel boostAction campo di una configurazione di pubblicazione. Per saperne di più sui controlli di Boost, consulta Informazioni sui controlli di Boost.

Questa pagina descrive i seguenti tipi di specifiche di boost:

Puoi applicare queste specifiche di boost per eseguire query su app di ricerca di contenuti multimediali e su app di ricerca generiche che contengono dati strutturati, non strutturati e di siti web. Queste specifiche non sono applicabili alle app di ricerca sanitaria.

Miglioramento con una condizione fissa

Per aumentare i risultati di un importo fisso in base al fatto che soddisfino o meno una condizione, procedi nel seguente modo:

  1. Specifica la specifica del boost nel campo boostSpec quando invii una richiesta servingConfigs.search.

    {
      "boostSpec": {
        "conditionBoostSpecs": {
          "condition": "BOOST_CONDITION",
          "boost": BOOST_VALUE
        }
      }
    }
    

    La specifica contiene i seguenti parametri:

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

Caso d'uso di esempio

Supponiamo che il tuo datastore contenga dati su hotel e relative valutazioni a stelle. Vuoi promuovere gli hotel con valutazioni in stelle superiori o uguali a tre. La valutazione a stelle è disponibile nel campo numerico star_rating. Puoi specificare condition in boostSpec come star_rating >= 3.0 e un valore di boost di 0,7 per aumentare di un importo uguale tutti gli hotel con un valore star_rating pari o superiore a 3,0.

{
  "boostSpec": {
    "conditionBoostSpecs": {
      "condition": "star_rating>=3.0",
      "boost": 0.7
    }
  }
}

Migliorare il rendimento utilizzando attributi numerici personalizzati

Puoi migliorare i risultati in base ad attributi numerici personalizzati in modo lineare frazionato specificando i punti di controllo e i relativi valori di miglioramento.

Per specificare una specifica dell'incremento utilizzando attributi numerici personalizzati: Procedi nel seguente modo:

  1. Specifica la specifica del boost nel campo boostSpec quando invii una richiesta servingConfigs.search.

    {
      "boostSpec": {
        "conditionBoostSpecs": {
            "condition": "BOOST_CONDITION",
            "boostControlSpec": {
              "attributeType": "NUMERICAL",
              "interpolationType": "LINEAR",
              "fieldName": "CUSTOM_ATTRIBUTE_FIELD_NAME",
              "controlPoints": [
                {
                  "attributeValue": "CUSTOM_ATTRIBUTE_VALUE_1",
                  "boostAmount": BOOST_AMOUNT_1
                },
                {
                  "attributeValue": "CUSTOM_ATTRIBUTE_VALUE_2",
                  "boostAmount": BOOST_AMOUNT_2
                }
              ]
            }
        }
      }
    }
    

    La specifica contiene i seguenti parametri:

    • BOOST_CONDITION: un'espressione di filtro del testo per selezionare i documenti a cui viene applicato il potenziamento. Il filtro deve valutare a un valore booleano.
    • CUSTOM_ATTRIBUTE_FIELD_NAME: il nome del campo dell'attributo numerico personalizzato il cui valore determina l'importo dell'incremento.
    • CUSTOM_ATTRIBUTE_VALUE: il valore numerico dell'attributo personalizzato per un determinato punto di controllo con un tipo di dati stringa. Ad esempio, "3.3" o "12". Per ulteriori informazioni, consulta ControlPoint.
    • BOOST_AMOUNT: un numero a virgola mobile nell'intervallo [-1,1]. Quando il valore è negativo, i risultati vengono retrocessi (vengono visualizzati più in basso nei risultati). Quando il valore è positivo, i risultati vengono promossi (vengono visualizzati più in alto nei risultati). Indica l'importo del potenziamento mappato all'attributo personalizzato per un determinato punto di controllo.

Quando un documento nel risultato di ricerca soddisfa la condizione specificata, viene applicato un importo del boost come segue:

Valore attributo Importo del boost
Meno del primo punto di controllo È uguale all'importo dell'incremento del primo punto di controllo
Uguale al punto di controllo È uguale all'importo dell'incremento mappato
Tra i punti di controllo Viene calcolato mediante interpolazione lineare
Maggiore dell'ultimo punto di controllo È uguale all'importo dell'aumento dell'ultimo punto di controllo

Caso d'uso di esempio

Supponiamo che il tuo datastore contenga dati su hotel e relative valutazioni a stelle. Vuoi migliorare i risultati di ricerca degli hotel in proporzione alle loro valutazioni con stelle. Puoi definire la specifica dell'incremento come segue:

{
  "boostSpec": {
    "conditionBoostSpecs": {
        "condition": "star_rating >= 3.0",
        "boostControlSpec": {
          "attributeType": "NUMERICAL",
          "interpolationType": "LINEAR",
          "fieldName": "star_rating",
          "controlPoints": [
            {
              "attributeValue": "3.5",
              "boostAmount": 0.25
            },
            {
              "attributeValue": "4.0",
              "boostAmount": 0.30
            },
            {
              "attributeValue": "4.5",
              "boostAmount": 0.32
            }
          ]
        }
    }
  }
}

Per questo scenario, i risultati di ricerca vengono migliorati nel seguente modo:

Stelle Importo del boost
minore o uguale a 3,5 0,25
tra 3,5 e 4,0 compreso tra 0,25 e 0,30, calcolato mediante interpolazione lineare
uguale a 4,0 0,30
tra 4,0 e 4,5 compreso tra 0,30 e 0,32, calcolato utilizzando l'interpolazione lineare
maggiore o uguale a 4,5 0,32

Miglioramento in base all'aggiornamento

Puoi migliorare i risultati in base agli attributi data e ora in modo lineare frazionato specificando i punti di controllo e i relativi valori di miglioramento.

Per specificare una specifica di boost utilizzando attributi data e ora personalizzati:

  1. Specifica la specifica del boost nel campo boostSpec quando invii una richiesta servingConfigs.search.

    {
      "boostSpec": {
        "conditionBoostSpecs": {
            "condition": "BOOST_CONDITION",
            "boostControlSpec": {
              "fieldName": "DATETIME_FIELD_NAME",
              "attributeType": "FRESHNESS",
              "interpolationType": "LINEAR",
              "controlPoints": [
                {
                  "attributeValue": "DURATION_VALUE_1",
                  "boostAmount": BOOST_AMOUNT_1
                },
                {
                  "attributeValue": "DURATION_VALUE_2",
                  "boostAmount": BOOST_AMOUNT_2
                }
              ]
            }
        }
      }
    }
    

    La specifica contiene i seguenti parametri:

    • BOOST_CONDITION: un'espressione di filtro del testo per selezionare i documenti a cui viene applicato il potenziamento. Il filtro deve valutare a un valore booleano.
    • DATETIME_FIELD_NAME: il nome del campo di un attributoDATETIME personalizzato, ad esempio la data di pubblicazione o la data dell'ultimo aggiornamento, o un attributo dedotto da Google predefinito, ad esempio datePublished.
    • DURATION_VALUE: il valore della durata nel tipo di dati dayTimeDuration che determina l'aggiornamento di un documento. Viene calcolato come durata tra la data e l'ora in cui viene eseguita la ricerca e la data e l'ora dell'attributo data e ora personalizzato di un documento. Il valore della durata deve essere specificato in base al formato ISO 8601 nel pattern[nD][T[nH][nM][nS]]. Ad esempio, la durata tra il 1° gennaio 2024 e il 1° marzo 2024 può essere espressa come 59D. Analogamente, la durata di due giorni e mezzo può essere espressa come 2DT12H. Per ulteriori informazioni, consulta ControlPoint.
    • BOOST_AMOUNT: un numero a virgola mobile nell'intervallo [-1,1]. Quando il valore è negativo, i risultati vengono retrocessi (vengono visualizzati più in basso nei risultati). Quando il valore è positivo, i risultati vengono promossi (vengono visualizzati più in alto nei risultati). Indica l'importo dell'incremento mappato all'attributo data e ora personalizzato per un determinato punto di controllo.

Quando un documento nel risultato di ricerca soddisfa la condizione specificata, viene applicato un importo del boost come segue:

Valore durata Importo del boost
Meno del primo punto di controllo È uguale all'importo dell'incremento del primo punto di controllo
Uguale a un determinato punto di controllo È uguale all'importo dell'incremento mappato
Tra i punti di controllo Viene calcolato mediante interpolazione lineare
Maggiore dell'ultimo punto di controllo È uguale all'importo dell'aumento dell'ultimo punto di controllo

Esempio di caso d'uso che utilizza un attributo data e ora personalizzato

Supponiamo che il tuo datastore contenga dati strutturati in cui ogni documento abbia una data di pubblicazione. Vuoi migliorare i risultati di ricerca in proporzione alla loro attualità. Puoi definire la specifica dell'incremento come segue:

{
  "boostSpec": {
    "conditionBoostSpecs": {
        "condition": true,
        "boostControlSpec": {
          "fieldName": "publication_date",
          "attributeType": "FRESHNESS",
          "interpolationType": "LINEAR",
          "controlPoints": [
            {
              "attributeValue": "7D",
              "boostAmount": 0.40
            },
            {
              "attributeValue": "30D",
              "boostAmount": 0.37
            },
            {
              "attributeValue": "60D",
              "boostAmount": 0.32
            },
            {
              "attributeValue": "90D",
              "boostAmount": 0
            }
          ]
        }
    }
  }
}

Per questo scenario, i risultati di ricerca vengono migliorati nel seguente modo:

Aggiornamento Importo del boost
meno o uguale a 7 giorni 0,40
tra 7 e 30 giorni compreso tra 0,40 e 0,37, calcolato utilizzando l'interpolazione lineare
uguale a 30 giorni 0,37
tra 30 e 60 giorni tra 0,37 e 0,32, calcolato utilizzando l'interpolazione lineare
uguale a 60 giorni 0,32
tra 60 e 90 giorni compreso tra 0,32 e 0,0, calcolato mediante interpolazione lineare
superiore o uguale a 90 giorni 0.0

Esempio di caso d'uso che utilizza una data della pagina dedotta da Google

Quando esegue la scansione delle pagine web nel datastore del tuo sito web, Google deducono i dati delle pagine utilizzando le proprietà che si applicano ai tuoi contenuti. Vertex AI Search aggiunge queste proprietà dei dati di pagina dedotte allo schema. Questi dati dedotti includeno le seguenti proprietà di data predefinite:

  • datePublished: la data e l'ora della prima pubblicazione della pagina
  • dateModified: la data e l'ora dell'ultima modifica della pagina

Queste proprietà vengono indicizzate automaticamente. Puoi utilizzare direttamente queste proprietà della data per arricchire la ricerca senza aggiungerle allo schema. Puoi utilizzare queste proprietà predefinite per migliorare la tua pagina. Ad esempio, puoi definire la specifica dell'incremento impostando il campo fieldName su pageModified come segue:

{
  "boostSpec": {
    "conditionBoostSpecs": {
        "condition": true,
        "boostControlSpec": {
          "fieldName": "dateModified",
          "attributeType": "FRESHNESS",
          "interpolationType": "LINEAR",
          "controlPoints": [
            {
              "attributeValue": "7D",
              "boostAmount": 0.35
            },
            {
              "attributeValue": "30D",
              "boostAmount": 0.30
            }
          ]
        }
    }
  }
}

Google deduco queste date secondo il criterio del "best effort" e le date dedotte potrebbero non corrispondere a quelle effettive. Questi campi vengono compilati solo quando Google ha un'elevata affidabilità. Quando questi valori di data mancano, questi campi diventano obbligatori.

Come best practice, Google consiglia al proprietario del dominio o all'amministratore del sito web di aggiornare queste proprietà per le tue pagine web e di aggiornare manualmente il tuo data store del sito web di Vertex AI Search dopo l'aggiornamento. Per ulteriori informazioni, leggi il post del blog Aiutare la Ricerca Google a conoscere la data migliore per la pagina web e scopri come funzionano i dati strutturati nella Ricerca Google.

Per aggiungere attributi dei dati strutturati personalizzati per arricchire l'indice, consulta Aggiungere attributi dei dati strutturati personalizzati allo datastore dati

Regolare l'importo dell'incremento con il filtro di pertinenza

Oltre ai fattori che influiscono sul ranking di un risultato, come la corrispondenza delle parole chiave, la corrispondenza del contesto e la pertinenza, la condizione di boost influisce in modo significativo sul ranking di un risultato. Pertanto, devi calibrare attentamente l'importo dell'incremento, soprattutto se utilizzi il campo boostSpec con il filtro di pertinenza. Per ulteriori informazioni sul filtro di pertinenza, consulta Filtrare le ricerche in base alla pertinenza a livello di documento.

Supponiamo che tu abbia documenti diversi con date di pubblicazione diverse. Per una determinata query, la tabella seguente mostra il ranking assoluto senza implementare alcun importo di boost o filtri di pertinenza e indica la pertinenza dei documenti su cui eseguire la query.

Documento Data di pubblicazione Pertinenza Classifica
A 1° febbraio 2024 Alta #1
B 1° marzo 2024 Alta #2
C 1° aprile 2024 Più basso #3
D 1° maggio 2024 Medio #4
E 1° giugno 2024 Bassa #5

Il 6 giugno 2024 aggiungi le seguenti condizioni di ricerca nella richiesta di ricerca:

  • Filtro di pertinenza impostato su LOW.
  • Valore di boost in modo che i documenti pubblicati negli ultimi 31 giorni vengano incrementati con un valore di 0,7 e i documenti precedenti a una settimana, ma più recenti di 60 giorni, vengano incrementati con un valore di 0,6.

Nell'output della ricerca, i risultati vengono prima filtrati in base alla pertinenza e poi viene applicato l'importo del potenziamento. Di conseguenza, le condizioni applicate modificano il ranking delle pagine nei risultati nel seguente modo:

Documento Data di pubblicazione Pertinenza Classifica
E 1° giugno 2024 Bassa #1
D 1° maggio 2024 Medio #2
A 1° febbraio 2024 Alta #3
B 1° marzo 2024 Alta #4

Il risultato con la pertinenza più bassa viene filtrato a causa del filtro di pertinenza. I documenti meno pertinenti per una query vengono classificati come risultati principali perché sono migliorati da un importo elevato. I risultati più pertinenti hanno un ranking più basso.

Pertanto, Google consiglia di iniziare con un importo dell'aumento basso e preciso e di modificarlo in base all'output della ricerca. In questo esempio, iniziare con importi di boost pari o inferiori a 0,1 potrebbe restituire risultati più pertinenti in alto.

Passaggi successivi