Puedes especificar condiciones de impulso en tu solicitud de búsqueda para promocionar o degradar determinados documentos en los resultados de búsqueda. Cuando un documento cumple las condiciones especificadas, se le aplican valores de refuerzo y los resultados se ordenan en consecuencia. También puede especificar valores numéricos y de marca de tiempo personalizados que le permitan ordenar los resultados en función de parámetros como la popularidad y la novedad.
La especificación de impulso en una solicitud de búsqueda es diferente de un control de impulso que se adjunta a una configuración de publicación. La especificación de refuerzo del campo boostSpec
anula el control de refuerzo definido en el campo boostAction
de una configuración de servicio. Para obtener más información sobre los controles de aumento, consulta Acerca de los controles de aumento.
En esta página se describen los siguientes tipos de especificaciones de impulso:
- Impulsar con una condición fija
- Impulsar con atributos numéricos personalizados
- Impulso según la frescura
Puedes aplicar estas especificaciones de refuerzo a las aplicaciones de búsqueda multimedia de consultas y a las aplicaciones de búsqueda personalizadas que contengan datos estructurados, no estructurados y de sitios web. Estas especificaciones no se aplican a las aplicaciones de búsqueda de contenido sanitario.
Impulsar con una condición fija
Para aumentar los resultados en una cantidad fija en función de si cumplen una condición, haz lo siguiente:
Especifica la especificación de impulso en el campo
boostSpec
cuando envíes una solicitudservingConfigs.search
.{ "boostSpec": { "conditionBoostSpecs": { "condition": "BOOST_CONDITION", "boost": BOOST_VALUE } } }
La especificación contiene los siguientes parámetros:
BOOST_CONDITION
: una expresión de filtro de texto para seleccionar los documentos a los que se aplica el aumento. El filtro debe dar como resultado un valor booleano.BOOST_VALUE
: un número de punto flotante en el intervalo [-1,1]. Si el valor es negativo, los resultados se degradan (aparecen más abajo en los resultados). Si el valor es positivo, los resultados se promocionan (aparecen más arriba en los resultados).
Ejemplo de caso práctico
Supongamos que tu almacén de datos contiene datos sobre hoteles y sus valoraciones por estrellas. Quieres destacar los hoteles con una valoración de tres estrellas o más. La valoración por estrellas está disponible en el campo numérico star_rating
. Puedes especificar el condition
en el boostSpec
como star_rating >= 3.0
y un valor de impulso de 0,7 para impulsar
todos los hoteles con star_rating
de 3,0 o más en la misma cantidad.
{
"boostSpec": {
"conditionBoostSpecs": {
"condition": "star_rating>=3.0",
"boost": 0.7
}
}
}
Impulsar con atributos numéricos personalizados
Puedes mejorar los resultados en función de atributos numéricos personalizados de forma lineal por tramos especificando puntos de control y sus valores de mejora correspondientes.
Para especificar un aumento mediante atributos numéricos personalizados, siga estos pasos:
Especifica la especificación de impulso en el campo
boostSpec
cuando envíes una solicitudservingConfigs.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 especificación contiene los siguientes parámetros:
BOOST_CONDITION
: una expresión de filtro de texto para seleccionar los documentos a los que se aplica el aumento. El filtro debe dar como resultado un valor booleano.CUSTOM_ATTRIBUTE_FIELD_NAME
: nombre del campo del atributo numérico personalizado cuyo valor determina el aumento.CUSTOM_ATTRIBUTE_VALUE
: valor numérico del atributo personalizado de un punto de control determinado con un tipo de datos de cadena. Por ejemplo,"3.3"
o"12"
. Para obtener más información, consulta ControlPoint.BOOST_AMOUNT
: un número de punto flotante en el intervalo [-1,1]. Si el valor es negativo, los resultados se degradan (aparecen más abajo en los resultados). Si el valor es positivo, los resultados se promocionan (aparecen más arriba en los resultados). Indica la cantidad de aumento asignada al atributo personalizado de un punto de control determinado.
Cuando un documento de los resultados de búsqueda cumple la condición especificada, se aplica un valor de refuerzo de la siguiente manera:
Valor de atributo | Importe de la mejora |
---|---|
Menos que el primer punto de control | Es igual a la cantidad de aumento del primer punto de control. |
Igual al punto de control | Es igual al importe de la mejora asignado |
Entre puntos de control | Se calcula mediante interpolación lineal. |
Mayor que el último punto de control | Es igual al valor de impulso del último punto de control. |
Ejemplo de caso práctico
Supongamos que tu almacén de datos contiene datos sobre hoteles y sus valoraciones por estrellas. Quieres potenciar los resultados de búsqueda de hoteles en proporción a sus valoraciones de estrellas. Puede definir la especificación de impulso de la siguiente manera:
{
"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
}
]
}
}
}
}
En este caso, los resultados de búsqueda se impulsan de la siguiente manera:
Valoración por estrellas | Importe de la mejora |
---|---|
menor o igual que 3,5 | 0,25 |
entre 3,5 y 4,0 | entre 0,25 y 0,30, calculado mediante interpolación lineal |
igual a 4,0 | 0,30 |
entre 4,0 y 4,5 | entre 0,30 y 0,32, calculado mediante interpolación lineal |
mayor o igual que 4,5 | 0,32 |
Impulso según la novedad
Puedes mejorar los resultados en función de los atributos de fecha y hora de forma lineal por tramos especificando los puntos de control y sus valores de mejora correspondientes.
Para especificar un aumento mediante atributos de fecha y hora personalizados, haga lo siguiente:
Especifica la especificación de impulso en el campo
boostSpec
cuando envíes una solicitudservingConfigs.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 especificación contiene los siguientes parámetros:
BOOST_CONDITION
: una expresión de filtro de texto para seleccionar los documentos a los que se aplica el aumento. El filtro debe dar como resultado un valor booleano.DATETIME_FIELD_NAME
: el nombre de campo de un atributo personalizado,DATETIME
como la fecha de publicación o la fecha de la última actualización, o un atributo predefinido inferido por Google, comodatePublished
.DURATION_VALUE
: el valor de duración del tipo de datosdayTimeDuration
que determina la actualización de un documento. Se calcula como la duración entre la fecha y hora en la que se realiza la búsqueda y la fecha y hora del atributo de fecha y hora personalizado de un documento. El valor de la duración debe especificarse según el formato ISO 8601 con el patrón[nD][T[nH][nM][nS]]
. Por ejemplo, la duración entre el 1 de enero del 2024 y el 1 de marzo del 2024 se puede expresar como59D
. Del mismo modo, la duración de dos días y medio se puede expresar como2DT12H
. Para obtener más información, consulta ControlPoint.BOOST_AMOUNT
: un número de punto flotante en el intervalo [-1,1]. Si el valor es negativo, los resultados se degradan (aparecen más abajo en los resultados). Si el valor es positivo, los resultados se promocionan (aparecen más arriba en los resultados). Indica el aumento asignado al atributo de fecha y hora personalizado de un punto de control determinado.
Cuando un documento de los resultados de búsqueda cumple la condición especificada, se aplica un valor de refuerzo de la siguiente manera:
Valor de duración | Importe de la mejora |
---|---|
Menos que el primer punto de control | Es igual a la cantidad de aumento del primer punto de control. |
Igual a un punto de control determinado | Es igual al importe de la mejora asignado |
Entre puntos de control | Se calcula mediante interpolación lineal. |
Mayor que el último punto de control | Es igual al valor de impulso del último punto de control. |
Ejemplo de caso práctico con un atributo de fecha y hora personalizado
Supongamos que tu almacén de datos contiene datos estructurados en los que cada documento tiene una fecha de publicación. Quieres mejorar los resultados de búsqueda en proporción a su actualidad. Puede definir la especificación de impulso de la siguiente manera:
{
"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
}
]
}
}
}
}
En este caso, los resultados de búsqueda se impulsan de la siguiente manera:
Actualización | Importe de la mejora |
---|---|
7 días como máximo | 0,40 |
entre 7 y 30 días | entre 0,40 y 0,37, calculado mediante interpolación lineal |
igual a 30 días | 0,37 |
entre 30 y 60 días | entre 0,37 y 0,32, calculado mediante interpolación lineal |
igual a 60 días | 0,32 |
entre 60 y 90 días | entre 0,32 y 0,0, calculado mediante interpolación lineal |
igual o superior a 90 días | 0,0 |
Ejemplo de uso con una fecha de página inferida por Google
Al rastrear las páginas web de tu almacén de datos del sitio web, Google infiere los datos de las páginas mediante las propiedades que se aplican a tu contenido. Vertex AI Search añade estas propiedades de datos de página inferidas a tu esquema. Estos datos inferidos incluyen las siguientes propiedades de fecha predefinidas:
datePublished
: la fecha y la hora en las que se publicó la página por primera vez.dateModified
: fecha y hora en las que se modificó la página por última vez.
Estas propiedades se indexan automáticamente. Puedes usar directamente estas propiedades de fecha para enriquecer tu búsqueda sin añadirlas a tu esquema.
Puede usar estas propiedades predefinidas para impulsar su página. Por ejemplo, puedes definir la especificación de refuerzo asignando el valor pageModified
al campo fieldName
de la siguiente manera:
{
"boostSpec": {
"conditionBoostSpecs": {
"condition": true,
"boostControlSpec": {
"fieldName": "dateModified",
"attributeType": "FRESHNESS",
"interpolationType": "LINEAR",
"controlPoints": [
{
"attributeValue": "7D",
"boostAmount": 0.35
},
{
"attributeValue": "30D",
"boostAmount": 0.30
}
]
}
}
}
}
Google deduce estas fechas de la mejor forma posible, pero es posible que no coincidan con las fechas reales. Estos campos solo se rellenan cuando Google tiene un alto nivel de confianza. Si faltan estos valores de fecha, estos campos se convierten en anulables.
Como práctica recomendada, Google recomienda que el propietario del dominio o el administrador del sitio web actualicen estas propiedades en tus páginas web y que actualices manualmente tu almacén de datos del sitio web de Vertex AI Search después de la actualización. Para obtener más información, consulta la entrada de blog Ayuda a la Búsqueda de Google a saber qué fecha debería mostrar junto a tu página web y descubre cómo funcionan los datos estructurados en la Búsqueda de Google.
Para añadir atributos de datos estructurados personalizados y enriquecer su índice, consulte el artículo Añadir atributos de datos estructurados personalizados al esquema del almacén de datos.
Ajuste del importe del aumento
Además de los factores que influyen en la clasificación de un resultado, como la coincidencia de palabras clave, la coincidencia de contexto y la relevancia, la condición de impulso afecta significativamente a la clasificación de un resultado. Por lo tanto, debes calibrar cuidadosamente el importe del aumento. Google recomienda que empieces con un aumento bajo y preciso, como 0,1 o menos, y que lo ajustes en función de los resultados de búsqueda.
Ejemplo de caso práctico con filtro de relevancia
La regulación de la cantidad de impulso es especialmente importante cuando se usa el campo boostSpec
con el filtro de relevancia. Para obtener más información sobre el filtro de relevancia, consulta Filtrar búsquedas por relevancia a nivel de documento.
Supongamos que tienes varios documentos con diferentes fechas de publicación. En el caso de una consulta concreta, la siguiente tabla representa la clasificación absoluta sin implementar ninguna condición de refuerzo ni filtro de relevancia, e indica la relevancia de los documentos para la consulta.
Documento | Fecha de publicación | Relevancia | Clasificación |
---|---|---|---|
A | 1 de febrero del 2024 | Alta | #1 |
B | 1 de marzo del 2024 | Alta | #2 |
C | 1 de abril del 2024 | Mínimo | #3 |
D | 1 de mayo del 2024 | Medio | #4 |
E | 1 de junio del 2024 | Bajo | #5 |
El 6 de junio del 2024, añade las siguientes condiciones de búsqueda a tu solicitud de búsqueda:
- El filtro de relevancia se ha definido como
LOW
. - Aumenta el valor de forma que los documentos publicados durante los últimos 31 días se aumenten en 0,7 y los documentos que tengan más de una semana, pero menos de 60 días, se aumenten en 0,6.
En los resultados de búsqueda, primero se filtran los resultados por relevancia y, después, se aplica el valor de impulso. Por lo tanto, las condiciones aplicadas alteran la clasificación de las páginas en los resultados de la siguiente manera:
Documento | Fecha de publicación | Relevancia | Clasificación |
---|---|---|---|
E | 1 de junio del 2024 | Bajo | #1 |
D | 1 de mayo del 2024 | Medio | #2 |
A | 1 de febrero del 2024 | Alta | #3 |
B | 1 de marzo del 2024 | Alta | #4 |
El resultado con la relevancia más baja se excluye debido al filtro de relevancia. Los documentos que son menos relevantes para una consulta se clasifican como resultados principales porque se han potenciado con un valor de potenciación alto. Los resultados más relevantes se clasifican en puestos más bajos.
Por lo tanto, Google recomienda que empieces con un valor bajo y preciso para el aumento y que lo ajustes en función de los resultados de búsqueda. En este ejemplo, si empiezas con importes de impulso de 0,1 o menos, es posible que obtengas resultados más relevantes en la parte superior.
Siguientes pasos
- Haz una solicitud de búsqueda con la especificación de impulso en el campo
boostSpec
. - Para entender el impacto del aumento en la calidad de búsqueda de una aplicación de búsqueda personalizada, evalúa la calidad de búsqueda. Para obtener más información, consulta el artículo Evaluar la calidad de la búsqueda.