Mejorar los resultados de búsqueda

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 de una solicitud de búsqueda es diferente de un control de impulso que se adjunta a una configuración de publicación. Para obtener más información sobre los controles de aumento, consulta el artículo Acerca de los controles de aumento.

En esta página se describen los siguientes tipos de especificaciones de aumento:

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:

  1. Especifica la especificación de impulso 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: una expresión de filtro de texto para seleccionar los documentos a los que se aplica el refuerzo. 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).

Caso práctico de ejemplo

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 con estrellas está disponible en el campo numérico star_rating. Puedes especificar el condition en boostSpec como star_rating >= 3.0 y un valor de refuerzo de 0,7 para reforzar todos los hoteles con star_rating de 3,0 o más en la misma proporción.

{
  "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:

  1. Especifica la especificación de impulso 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: una expresión de filtro de texto para seleccionar los documentos a los que se aplica el refuerzo. 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 importe del 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 el aumento asignado 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.

Caso práctico de ejemplo

Supongamos que tu almacén de datos contiene datos sobre hoteles y sus valoraciones por estrellas. Quieres mejorar los resultados de búsqueda de hoteles en proporción a su valoración por estrellas. Puedes 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:

  1. Especifica la especificación de impulso 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: una expresión de filtro de texto para seleccionar los documentos a los que se aplica el refuerzo. 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, como datePublished.
    • DURATION_VALUE: el valor de duración del tipo de datos dayTimeDuration 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 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 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. Puedes 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

Regular el importe del aumento 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 impulso afecta significativamente a la clasificación de un resultado. Por lo tanto, debes calibrar cuidadosamente el valor del aumento, sobre todo cuando uses 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 ningún valor de impulso 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 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 elevado. 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 saber cómo influye el 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.