Cómo mejorar los resultados de la búsqueda

Puedes especificar condiciones de aumento en tu solicitud de búsqueda para promocionar o degradar ciertos documentos en los resultados de la búsqueda. Cuando un documento cumple con las condiciones especificadas, se le aplican los valores de mejora y los resultados se ordenan según corresponda. También puedes especificar valores numéricos y valores de marca de tiempo personalizados que te permiten ordenar los resultados en función de parámetros como la popularidad y la actualización.

La especificación de aumento en una solicitud de búsqueda es diferente de un control de aumento que se adjunta a una configuración de publicación. La especificación de aumento en el campo boostSpec anula el control de aumento definido en el campo boostAction de una configuración de publicación. 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 aumento:

Puedes aplicar estas especificaciones de aumento para consultar apps de búsqueda de contenido multimedia y apps de búsqueda genéricas que contengan datos estructurados, no estructurados y de sitios web. Estas especificaciones no se aplican a las apps de búsqueda de atención médica.

Mejora tus resultados con una condición fija

Para aumentar los resultados en una cantidad fija según si satisfacen una condición, haz lo siguiente:

  1. Especifica la especificación de aumento en el campo boostSpec cuando envíes una solicitud servingConfigs.search.

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

    La especificación contiene los siguientes parámetros:

    • BOOST_CONDITION: Es una expresión de filtro de texto para seleccionar los documentos a los que se aplica la mejora. El filtro debe evaluarse como un valor booleano.
    • BOOST_VALUE: Un número de punto flotante en el rango [-1,1]. Cuando el valor es negativo, los resultados se degradan (aparecen más abajo en los resultados). Cuando el valor es positivo, los resultados se promocionan (aparecen más arriba en los resultados).

Ejemplo de caso de uso

Supongamos que tu almacén de datos contiene datos sobre hoteles y sus calificaciones por estrellas. Quieres destacar los hoteles con calificaciones de estrellas superiores o iguales a tres. La calificació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 aumento de 0.7 para aumentar todos los hoteles con star_rating de 3.0 o más en una cantidad igual.

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

Usa atributos numéricos personalizados para aumentar la efectividad

Puedes aumentar los resultados en función de atributos numéricos personalizados de forma lineal por tramos especificando puntos de control y sus valores de aumento correspondientes.

Para especificar una especificación de aumento con atributos numéricos personalizados, haz lo siguiente:

  1. Especifica la especificación de aumento en el campo boostSpec cuando envíes una solicitud 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 especificación contiene los siguientes parámetros:

    • BOOST_CONDITION: Es una expresión de filtro de texto para seleccionar los documentos a los que se aplica la mejora. El filtro debe evaluarse como un valor booleano.
    • CUSTOM_ATTRIBUTE_FIELD_NAME: Es el nombre del campo del atributo numérico personalizado cuyo valor determina el importe del aumento.
    • CUSTOM_ATTRIBUTE_VALUE: Es el valor numérico del atributo personalizado para un punto de control determinado con un tipo de datos de cadena. Por ejemplo, "3.3""12". Para obtener más información, consulta ControlPoint.
    • BOOST_AMOUNT: Un número de punto flotante en el rango [-1,1]. Cuando el valor es negativo, los resultados se degradan (aparecen más abajo en los resultados). Cuando el valor es positivo, los resultados se promocionan (aparecen más arriba en los resultados). Indica el importe de aumento asignado al atributo personalizado para un punto de control determinado.

Cuando un documento en el resultado de la búsqueda cumple con la condición especificada, se aplica un importe de aumento de la siguiente manera:

Valor de atributo Importe de la mejora
Menos que el primer punto de control Es igual al importe del aumento del primer punto de control.
Igual al punto de control Es igual al importe de la mejora asignada
Entre puntos de control Se calcula mediante interpolación lineal.
Mayor que el último punto de control Es igual al importe de aumento del último punto de control.

Ejemplo de caso de uso

Supongamos que tu almacén de datos contiene datos sobre hoteles y sus calificaciones por estrellas. Quieres mejorar los resultados de la búsqueda de hoteles en proporción a sus calificaciones con estrellas. Puedes definir la especificación de aumento 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 esta situación, los resultados de la búsqueda se mejoran de la siguiente manera:

Calificació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 con interpolación lineal
igual a 4.0 0.30
entre 4.0 y 4.5 entre 0.30 y 0.32, calculado con interpolación lineal
mayor o igual que 4.5 0.32

Aumento según la actualidad

Puedes aumentar los resultados en función de los atributos de fecha y hora de una manera lineal por tramos si especificas los puntos de control y sus valores de aumento correspondientes.

Para especificar una especificación de aumento con atributos de fecha y hora personalizados, haz lo siguiente:

  1. Especifica la especificación de aumento en el campo boostSpec cuando envíes una solicitud 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 especificación contiene los siguientes parámetros:

    • BOOST_CONDITION: Es una expresión de filtro de texto para seleccionar los documentos a los que se aplica la mejora. El filtro debe evaluarse como un valor booleano.
    • DATETIME_FIELD_NAME: Es el nombre del campo de un atributo DATETIME personalizado, como la fecha de publicación o la fecha de la última actualización, o un atributo inferido predefinido por Google, como datePublished.
    • DURATION_VALUE: Es el valor de duración en el tipo de datos dayTimeDuration que decide la actualización de un documento. Esto 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 duración se debe especificar según el formato ISO 8601 en el patrón [nD][T[nH][nM][nS]]. Por ejemplo, la duración entre el 1 de enero de 2024 y el 1 de marzo de 2024 se puede expresar como 59D. Del mismo modo, la duración de dos días y medio se puede expresar como 2DT12H. Para obtener más información, consulta ControlPoint.
    • BOOST_AMOUNT: Un número de punto flotante en el rango [-1,1]. Cuando el valor es negativo, los resultados se degradan (aparecen más abajo en los resultados). Cuando el valor es positivo, los resultados se promocionan (aparecen más arriba en los resultados). Indica el importe de aumento asignado al atributo fecha y hora personalizado para un punto de control determinado.

Cuando un documento en el resultado de la búsqueda cumple con la condición especificada, se aplica un importe de aumento de la siguiente manera:

Valor de duración Importe de la mejora
Menos que el primer punto de control Es igual al importe del aumento del primer punto de control.
Igual a un punto de control determinado Es igual al importe de la mejora asignada
Entre puntos de control Se calcula mediante interpolación lineal.
Mayor que el último punto de control Es igual al importe de aumento del último punto de control.

Ejemplo de caso de uso 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 la búsqueda en proporción a su actualización. Puedes definir la especificación de aumento 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 esta situación, los resultados de la búsqueda se mejoran de la siguiente manera:

Actualidad Importe de la mejora
Menor o igual que 7 días 0.40
entre 7 y 30 días entre 0.40 y 0.37, calculado con interpolación lineal
igual a 30 días 0.37
entre 30 y 60 días entre 0.37 y 0.32, calculado con interpolación lineal
igual a 60 días 0.32
entre 60 y 90 días entre 0.32 y 0.0, calculado con interpolación lineal
superior o igual a 90 días 0.0

Ejemplo de caso de uso con una fecha de página inferida por Google

Cuando rastrea las páginas web en el almacén de datos de tu sitio web, Google infiere los datos de la página con las propiedades que se aplican a tu contenido. Vertex AI Search agrega estas propiedades de datos de página inferidos a tu esquema. Estos datos inferidos incluyen las siguientes propiedades de fecha predefinidas:

  • datePublished: La fecha y hora en la que se publicó la página por primera vez
  • dateModified: La fecha y la hora en la que se modificó la página más recientemente.

Estas propiedades se indexan automáticamente. Puedes usar directamente estas propiedades de fecha para enriquecer tu búsqueda sin agregarlas a tu esquema. Puedes usar estas propiedades predefinidas para mejorar tu página. Por ejemplo, puedes definir la especificación de aumento configurando el campo fieldName en pageModified 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 infiere estas fechas según el mejor esfuerzo, y es posible que las fechas inferidas no coincidan con las reales. Estos campos solo se propagan cuando Google tiene un nivel de confianza alto. Cuando faltan estos valores de fecha, estos campos se vuelven nulos.

Como práctica recomendada, Google recomienda que el propietario del dominio o el administrador del sitio web actualice estas propiedades para tus páginas web y que actualices manualmente el 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 cuál es la mejor fecha para tu página web y obtén información sobre cómo funcionan los datos estructurados en la Búsqueda de Google.

Para agregar atributos de datos estructurados personalizados que enriquezcan tu índice, consulta Agrega atributos de datos estructurados personalizados al esquema del almacén de datos.

Regula el importe de la mejora con el filtro de relevancia

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 aumento afecta significativamente la clasificación de un resultado. Por lo tanto, debes calibrar cuidadosamente el importe del aumento, sobre todo cuando usas el campo boostSpec con el filtro de relevancia. Para obtener más información sobre el filtro de relevancia, consulta Cómo filtrar búsquedas por relevancia a nivel del documento.

Supongamos que tienes diferentes documentos con diferentes fechas de publicación. Para una consulta en particular, la siguiente tabla representa la clasificación absoluta sin implementar ningún aumento de cantidad ni filtros de relevancia, y también indica la relevancia de los documentos que se consultarán.

Documento Fecha de publicación Relevancia Clasificación
A 1 de febrero de 2024 Alta N.º 1
B 1 de marzo de 2024 Alta N.º 2
C 1 de abril de 2024 Más bajo #3
D 1 de mayo de 2024 Media #4
E 1 de junio de 2024 Low (Baja) #5

El 6 de junio de 2024, agregas las siguientes condiciones de búsqueda en tu solicitud de búsqueda:

  • El filtro de relevancia se estableció en LOW.
  • Es el valor de impulso, de modo que los documentos publicados durante los últimos 31 días tengan un aumento de 0.7 y los documentos que tengan más de una semana, pero menos de 60 días, tengan un aumento de 0.6.

En el resultado de la búsqueda, los resultados se filtran primero por relevancia y, luego, se aplica el importe del aumento. 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 de 2024 Low (Baja) N.º 1
D 1 de mayo de 2024 Media N.º 2
A 1 de febrero de 2024 Alta #3
B 1 de marzo de 2024 Alta #4

El resultado con la relevancia más baja se filtra debido al filtro de relevancia. Los documentos que son menos relevantes para una consulta se clasifican como resultados principales porque se benefician de un gran aumento de clasificación. Los resultados más relevantes se clasifican más abajo.

Por lo tanto, Google recomienda que comiences el importe de la mejora desde un valor bajo y preciso, y que lo ajustes según el resultado de la búsqueda. En este ejemplo, comenzar con aumentos de 0.1 o menos podría recuperar resultados más relevantes en la parte superior.

¿Qué sigue?