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 di timestamp personalizzati che ti consentono di ordinare i risultati in base a parametri come popolarità e novità.
La specifica del booster in una richiesta di ricerca è diversa da un controllo del booster
collegato a una configurazione di pubblicazione. La specifica del booster
Il campo boostSpec
sostituisce il controllo del booster definito nel campo boostAction
di una configurazione di pubblicazione. Per saperne di più sui controlli di Boost, consulta Informazioni sui controlli di Boost.
In questa pagina vengono descritti i seguenti tipi di specifiche del booster:
- Migliora con una condizione fissa
- Migliorare il rendimento utilizzando attributi numerici personalizzati
- Migliora in base all'aggiornamento
Puoi applicare queste specifiche di boost alle query delle app di ricerca di contenuti multimediali e delle app di ricerca generiche che contengono dati strutturati, non strutturati e di siti web. Queste specifiche non sono applicabili alle app di ricerca sanitaria.
Boost con una condizione fissa
Per migliorare i risultati di un importo fisso a seconda che soddisfino una condizione, segui questi passaggi:
Specifica la specifica di boost nel campo
boostSpec
quando invii una richiestaservingConfigs.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 restituire in un valore booleano.BOOST_VALUE
: un numero con rappresentazione in virgola mobile compreso tra -1 e 1. Se il valore corrisponde a negativi, i risultati vengono retrocessi (appaiono più in basso nella ). Quando il valore è positivo, i risultati vengono promossi (appaiono più in alto nei risultati).
Caso d'uso di esempio
Supponiamo che il datastore contenga dati sugli hotel e sulle relative valutazioni a stelle. Vuoi promuovere gli hotel con valutazioni in stelle pari o superiori a tre. La valutazione a stelle è
disponibile nel campo numerico star_rating
. Puoi specificare il condition
in boostSpec
come star_rating >= 3.0
e un valore di boost di 0,7 per incrementare
tutti gli hotel con 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:
Specifica la specifica di booster nel campo
boostSpec
quando invii una richiestaservingConfigs.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 della attributo numerico personalizzato il cui valore determina l'importo del booster.CUSTOM_ATTRIBUTE_VALUE
: il valore numerico del attributo personalizzato per un determinato punto di controllo con un tipo di dati stringa. Per ad esempio"3.3"
o"12"
. Per ulteriori informazioni, consulta ControlPoint.BOOST_AMOUNT
: l'importo del booster associato alla richiesta per un dato 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 alla quantità di boost mappata |
Tra i punti di controllo | Viene calcolato mediante interpolazione lineare |
Maggiore dell'ultimo punto di controllo | È uguale alla quantità di boosting dell'ultimo punto di controllo |
Caso d'uso di esempio
Supponiamo che il datastore contenga dati sugli hotel e sulle relative valutazioni a stelle. Vuoi aumenta i risultati di ricerca degli hotel in proporzione alla stella valutazioni. Puoi definire la specifica di booster 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 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 |
Esegui il boost 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:
Specifica la specifica di booster nel campo
boostSpec
quando invii una richiestaservingConfigs.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 restituire in un valore booleano.DATETIME_FIELD_NAME
: il nome del campo di un AttributoDATETIME
, ad esempio data di pubblicazione o data dell'ultimo aggiornamento, o un attributo predefinito dedotto da Google, comedatePublished
.DURATION_VALUE
: il valore della durata nel tipo di datidayTimeDuration
che determina l'aggiornamento di un documento. Questo valore viene calcolato come durata tra la data/ora in cui viene eseguita la ricerca e la data/ora dell'attributo data/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 1 marzo 2024 possono essere espresse come59D
. Analogamente, la durata di due giorni e mezzo possono essere espressi come2DT12H
. Per ulteriori informazioni, vedi ControlPoint.BOOST_AMOUNT
: l'importo del booster associato alla richiesta datetime di 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 calcolata tramite interpolazione lineare |
Maggiore dell'ultimo punto di controllo | È uguale all'importo dell'aumento dell'ultimo punto di controllo |
Caso d'uso di esempio in cui viene utilizzato un attributo data/ora personalizzato
Supponiamo che il datastore contenga dati strutturati in cui ogni documento ha un data di pubblicazione. Vuoi aumentare i risultati di ricerca in proporzione la loro freschezza. Puoi definire la specifica dell'aumento 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 di 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 | tra 0,32 e 0,0, calcolati utilizzando l'interpolazione lineare |
maggiore o uguale a 90 giorni | 0.0 |
Caso d'uso di esempio che utilizza una data della pagina dedotta da Google
Quando esegue la scansione delle pagine web nel data store 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 paginadateModified
: la data e l'ora dell'ultima modifica della pagina
Queste proprietà vengono indicizzate automaticamente. Puoi usare direttamente queste date
per arricchire la tua ricerca senza aggiungerle allo schema.
Puoi utilizzare queste proprietà predefinite per migliorare la tua pagina. Ad esempio, puoi
definisci la specifica di boost 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 deduce queste date secondo il criterio del "best effort" e le date dedotte potrebbero non corrispondere alle date 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, consulta la Guida Ricerca Google: scopri qual è la data migliore per il tuo web di Google Cloud e scopri Come funzionano i dati strutturati in Google Ricerca.
Per aggiungere attributi dei dati strutturati personalizzati per arricchire il tuo indice, consulta: Aggiungere attributi dei dati strutturati personalizzati allo schema del datastore
Regola l'importo dell'incremento con il filtro di pertinenza
Oltre ai fattori che influenzano il ranking di un risultato, come
corrispondenza delle parole chiave, corrispondenza del contesto e pertinenza, la condizione di aumento influisce sul ranking
un risultato significativamente. Pertanto, devi calibrare attentamente l'importo dell'incremento, soprattutto se utilizzi il campo boostSpec
con il filtro di pertinenza. Per maggiori informazioni
informazioni sul filtro della pertinenza, consulta
Filtrare le ricerche in base alla pertinenza a livello di documento.
Supponi di avere 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° feb 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 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 di ricerca, i risultati vengono filtrati prima in base alla pertinenza e poi in base alla viene applicato l'importo del booster. 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° feb 2024 | Alta | #3 |
B | 1° marzo 2024 | Alta | #4 |
Il risultato con la pertinenza più bassa viene filtrato a causa del filtro della pertinenza. I documenti meno pertinenti per una query vengono classificati come risultati principali perché sono migliorati da un importo elevato. Più sono i risultati 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
- Esegui una richiesta di ricerca con la specifica di boost nel campo
boostSpec
. - Per comprendere l'impatto di un booster sulla qualità di ricerca di un'app di ricerca generica, valutare la qualità della ricerca. Per ulteriori informazioni, consulta Valutare la qualità della ricerca.