Melhorar os resultados da pesquisa

É possível especificar condições de otimização na solicitação de pesquisa para promover ou rebaixar determinados documentos nos resultados da pesquisa. Quando um documento atende às condições especificadas, os valores de otimização são aplicados a ele e os resultados são ordenados de acordo. Também é possível especificar valores numéricos e de carimbo de data/hora personalizados que permitem ordenar os resultados com base em parâmetros, como popularidade e novidade.

A especificação de otimização em uma solicitação de pesquisa é diferente de um controle de otimização anexado a uma configuração de exibição. A especificação de aumento no campo boostSpec substitui o controle de aumento definido no campo boostAction de uma configuração de veiculação. Para mais informações sobre os controles de aumento, consulte Sobre os controles de aumento.

Esta página descreve os seguintes tipos de especificações de aumento:

É possível aplicar essas especificações de aumento para consultar apps de pesquisa de mídia e genéricos que contêm dados estruturados, não estruturados e de sites. Essas especificações não são aplicáveis a apps de pesquisa de saúde.

Aprimoramento com uma condição fixa

Para aumentar os resultados em um valor fixo com base na satisfação de uma condição, faça o seguinte:

  1. Especifique a especificação de aumento no campo boostSpec ao enviar uma solicitação servingConfigs.search.

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

    A especificação contém os seguintes parâmetros:

    • BOOST_CONDITION: uma expressão de filtro de texto para selecionar os documentos em que o aumento é aplicado. O filtro precisa ser avaliado como um valor booleano.
    • BOOST_VALUE: um número de ponto flutuante no intervalo [-1,1]. Quando o valor é negativo, os resultados são rebaixados (eles aparecem mais abaixo nos resultados). Quando o valor é positivo, os resultados são promovidos (eles aparecem mais acima nos resultados).

Exemplo de caso de uso:

Suponha que seu repositório de dados contenha informações sobre hotéis e as notas deles. Você quer melhorar hotéis com classificações de estrelas maiores ou iguais a três. A nota está disponível no campo numérico star_rating. É possível especificar o condition no boostSpec como star_rating >= 3.0 e um valor de otimização de 0,7 para otimizar todos os hotéis com star_rating de 3,0 ou mais em uma quantidade igual.

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

Aprimoramento usando atributos numéricos personalizados

É possível aumentar os resultados com base em atributos numéricos personalizados de maneira linear por partes especificando pontos de controle e os valores de aumento correspondentes.

Para especificar um aumento usando atributos numéricos personalizados, faça o seguinte:

  1. Especifique a especificação de aumento no campo boostSpec ao enviar uma solicitação 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
                }
              ]
            }
        }
      }
    }
    

    A especificação contém os seguintes parâmetros:

    • BOOST_CONDITION: uma expressão de filtro de texto para selecionar os documentos em que o aumento é aplicado. O filtro precisa ser avaliado como um valor booleano.
    • CUSTOM_ATTRIBUTE_FIELD_NAME: o nome do campo do atributo numérico personalizado cujo valor decide o valor do aumento.
    • CUSTOM_ATTRIBUTE_VALUE: o valor numérico do atributo personalizado para um determinado ponto de controle com um tipo de dados de string. Por exemplo, "3.3" ou "12". Para mais informações, consulte ControlPoint.
    • BOOST_AMOUNT: um número de ponto flutuante no intervalo [-1,1]. Quando o valor é negativo, os resultados são rebaixados (eles aparecem mais abaixo nos resultados). Quando o valor é positivo, os resultados são promovidos (eles aparecem mais acima nos resultados). Indica a quantidade de aumento mapeada para o atributo personalizado de um determinado ponto de controle.

Quando um documento no resultado da pesquisa atende à condição especificada, um valor de otimização é aplicado da seguinte maneira:

Valor do atributo Valor do boost
Menor que o primeiro ponto de controle É igual ao valor do aumento do primeiro ponto de controle
Igual ao ponto de controle É igual ao valor do aumento mapeado
Entre pontos de controle É calculado por interpolação linear
Maior que o último ponto de controle É igual ao valor do aumento do último ponto de controle

Exemplo de caso de uso:

Suponha que seu repositório de dados contenha dados sobre hotéis e as notas deles. Você quer melhorar os resultados da pesquisa de hotéis de acordo com as classificações de estrelas. É possível definir a especificação de aumento da seguinte maneira:

{
  "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
            }
          ]
        }
    }
  }
}

Para este cenário, os resultados da pesquisa são otimizados da seguinte maneira:

Nota com estrelas Valor do boost
menor ou igual a 3,5 0,25
entre 3,5 e 4,0 entre 0,25 e 0,30, calculado usando interpolação linear
igual a 4,0 0,30
entre 4,0 e 4,5 entre 0,30 e 0,32, calculado usando interpolação linear
maior ou igual a 4,5 0.32

Aumento de acordo com a atualização

É possível aumentar os resultados com base em atributos de data/hora de forma linear especificando pontos de controle e os valores de aumento correspondentes.

Para especificar um aumento usando atributos de data e hora personalizados, faça o seguinte:

  1. Especifique a especificação de aumento no campo boostSpec ao enviar uma solicitação 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
                }
              ]
            }
        }
      }
    }
    

    A especificação contém os seguintes parâmetros:

    • BOOST_CONDITION: uma expressão de filtro de texto para selecionar os documentos em que o aumento é aplicado. O filtro precisa ser avaliado como um valor booleano.
    • DATETIME_FIELD_NAME: o nome de campo de um atributo DATETIME personalizado, como a data de publicação ou a data da última atualização, ou um atributo predefinido inferido pelo Google, como datePublished.
    • DURATION_VALUE: o valor de duração no tipo de dados dayTimeDuration que decide a atualidade de um documento. Isso é calculado como a duração entre a data e a hora em que a pesquisa é realizada e a data e a hora do atributo de data e hora personalizado de um documento. O valor da duração precisa ser especificado de acordo com o formato ISO 8601 no padrão [nD][T[nH][nM][nS]]. Por exemplo, a duração entre 1º de janeiro de 2024 e 1º de março de 2024 pode ser expressa como 59D. Da mesma forma, a duração de dois dias e meio pode ser expressa como 2DT12H. Para mais informações, consulte ControlPoint.
    • BOOST_AMOUNT: um número de ponto flutuante no intervalo [-1,1]. Quando o valor é negativo, os resultados são rebaixados (eles aparecem mais abaixo nos resultados). Quando o valor é positivo, os resultados são promovidos (eles aparecem mais acima nos resultados). Indica a quantidade de aumento mapeada para o atributo de data/hora personalizada de um determinado ponto de controle.

Quando um documento no resultado da pesquisa atende à condição especificada, um valor de otimização é aplicado da seguinte maneira:

Valor da duração Valor do boost
Menor que o primeiro ponto de controle É igual ao valor do aumento do primeiro ponto de controle
Igual a um determinado ponto de controle É igual ao valor do aumento mapeado
Entre pontos de controle É calculado por interpolação linear
Maior que o último ponto de controle É igual ao valor do aumento do último ponto de controle

Exemplo de caso de uso usando um atributo de data e hora personalizado

Suponha que seu repositório de dados contenha dados estruturados em que cada documento tem uma data de publicação. Você quer aumentar os resultados da pesquisa de acordo com a atualidade deles. É possível definir a especificação de aumento da seguinte maneira:

{
  "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
            }
          ]
        }
    }
  }
}

Para este cenário, os resultados da pesquisa são otimizados da seguinte maneira:

Atualização Valor do boost
menor ou igual a 7 dias 0.40
entre 7 e 30 dias entre 0,40 e 0,37, calculado usando interpolação linear
igual a 30 dias 0,37
entre 30 e 60 dias entre 0,37 e 0,32, calculado usando interpolação linear
igual a 60 dias 0.32
entre 60 e 90 dias entre 0,32 e 0,0, calculado usando interpolação linear
maior ou igual a 90 dias 0,0

Exemplo de caso de uso com uma data da página inferida pelo Google

Ao rastrear as páginas da Web na repositório de dados do seu site, o Google infere os dados da página usando as propriedades que se aplicam ao seu conteúdo. A Vertex AI para Pesquisa adiciona essas propriedades de dados de página inferidas ao seu esquema. Esses dados inferidos incluem as seguintes propriedades de data predefinidas:

  • datePublished: a data e a hora em que a página foi publicada pela primeira vez
  • dateModified: a data e a hora em que a página foi modificada mais recentemente

Essas propriedades são indexadas automaticamente. É possível usar essas propriedades de data diretamente para enriquecer sua pesquisa sem adicioná-las ao esquema. Você pode usar essas propriedades predefinidas para melhorar sua página. Por exemplo, é possível definir a especificação de aumento definindo o campo fieldName como pageModified da seguinte maneira:

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

O Google infere essas datas da melhor forma possível, e as datas inferidas podem não corresponder às datas reais. Esses campos são preenchidos apenas quando o Google tem um alto nível de confiança. Quando esses valores de data estão ausentes, esses campos se tornam nulos.

Como prática recomendada, o Google recomenda que o proprietário do domínio ou o administrador do site atualize essas propriedades para suas páginas da Web e que você atualize manualmente a loja de dados do site da Vertex AI para Pesquisa após a atualização. Para mais informações, consulte a postagem do blog Ajude a Pesquisa Google a mostrar a melhor data para sua página da Web e saiba como os dados estruturados funcionam na Pesquisa Google.

Para adicionar atributos de dados estruturados personalizados e enriquecer seu índice, consulte Adicionar atributos de dados estruturados personalizados ao repositório de dados dados.

Regular o valor do aumento com o filtro de relevância

Além dos fatores que influenciam a classificação de um resultado, como correspondência de palavras-chave, correspondência de contexto e relevância, a condição de aumento afeta significativamente a classificação de um resultado. Portanto, é necessário calibrar cuidadosamente o valor do aumento, principalmente ao usar o campo boostSpec com o filtro de relevância. Para mais informações sobre o filtro de relevância, consulte Filtrar pesquisas por relevância no nível do documento.

Suponha que você tenha documentos diferentes com datas de publicação diferentes. Para uma consulta específica, a tabela a seguir representa a classificação absoluta sem implementar nenhum valor de aumento ou filtros de relevância e indica a relevância dos documentos a serem consultados.

Documento Data de publicação Relevância Classificação
A 1º de fevereiro de 2024 Alta #1
B 1 de março de 2024 Alta #2
C 1º de abril de 2024 Mais baixa #3
D 1º de maio de 2024 Médio #4
E 1º de junho de 2024 Baixo #5

Em 6 de junho de 2024, você adiciona as seguintes condições de pesquisa à sua solicitação de pesquisa:

  • O filtro de relevância foi definido como LOW.
  • O valor de aumento é otimizado de modo que os documentos publicados nos últimos 31 dias sejam otimizados em 0,7, e os documentos com mais de uma semana, mas menos de 60 dias, sejam otimizados em 0,6.

Na saída da pesquisa, os resultados são filtrados primeiro por relevância e, em seguida, o valor do aumento é aplicado. Portanto, as condições aplicadas alteram o ranking das páginas nos resultados da seguinte maneira:

Documento Data de publicação Relevância Classificação
E 1º de junho de 2024 Baixo #1
D 1º de maio de 2024 Médio #2
A 1º de fevereiro de 2024 Alta #3
B 1 de março de 2024 Alta #4

O resultado com a menor relevância é filtrado devido ao filtro de relevância. Os documentos menos relevantes para uma consulta são classificados como principais resultados porque são impulsionados por uma grande quantidade de reforço. Os resultados mais relevantes são classificados em uma posição mais baixa.

Por isso, o Google recomenda que você comece o valor do aumento com um valor baixo e preciso e ajuste o valor dependendo do resultado da pesquisa. Neste exemplo, começar com valores de aumento de 0,1 ou menos pode buscar resultados mais relevantes na parte de cima.

A seguir