É 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 ao requisito condições, os valores de otimização são aplicados a ela e os resultados são ordenados de maneira adequada. Também é possível especificar valores numéricos personalizados e valores de carimbo de data/hora que permitem ordenar os resultados com base em parâmetros como popularidade e à atualização deles.
A especificação de otimização em uma solicitação de pesquisa é diferente de um controle de otimização
que está anexada a uma configuração de veiculação. A especificação "Boost" na
O campo boostSpec
substitui o controle de otimização definido em 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:
- Otimizar com uma condição fixa
- Impulsionar usando atributos numéricos personalizados
- Otimizar de acordo com a atualização
É possível aplicar essas especificações de otimização para consultar apps de pesquisa de mídia e apps de pesquisa genérica 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.
Otimizar com uma condição fixa
Para otimizar os resultados por um valor fixo com base no fato de eles atenderem ou não a uma condição, faça o seguinte:
Especifique a especificação de aumento no campo
boostSpec
ao enviar uma solicitaçãoservingConfigs.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 entre -1 e 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
na boostSpec
como star_rating >= 3.0
e um valor de otimização de 0,7 para impulsionar
todos os hotéis com star_rating
igual ou superior a 3,0.
{
"boostSpec": {
"conditionBoostSpecs": {
"condition": "star_rating>=3.0",
"boost": 0.7
}
}
}
Otimizar 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:
Especifique a especificação de otimização no
boostSpec
. quando você envia uma solicitaçãoservingConfigs.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 a otimização será aplicada. O filtro precisa avaliar 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 Ponto de controle.BOOST_AMOUNT
: o valor do aumento mapeado 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 à quantidade de otimização 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 à quantidade de otimização do último ponto de controle |
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 os resultados da pesquisa de hotéis de acordo com as classificações de estrelas. É possível definir a especificação de otimização 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, calculada usando interpolação linear |
maior ou igual a 4,5 | 0.32 |
Otimizar 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 definir uma especificação de otimização usando atributos personalizados de data e hora, faça o seguinte: faça o seguinte:
Especifique a especificação de otimização no
boostSpec
. quando você envia uma solicitaçãoservingConfigs.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 a otimização será aplicada. O filtro precisa avaliar como um valor booleano.DATETIME_FIELD_NAME
: o nome do campo de umDATETIME
, como data da publicação ou da última atualização, ou um atributo predefinido inferido pelo Google, comodatePublished
.DURATION_VALUE
: o valor da duração emdayTimeDuration
tipo de dados que decide se um documento é atualizado. Isso é calculado como duração entre a datetime em que a pesquisa é realizada e a do atributo datetime 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 como59D
. Da mesma forma, a duração de dois dias e meio pode ser expressa como2DT12H
. Para mais informações, consulte ControlPoint.BOOST_AMOUNT
: o valor do aumento mapeado para o atributo de data e hora 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 da duração | Aumentar a quantidade |
---|---|
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 à quantidade de bônus mapeada |
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 com um atributo datetime 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 | Aumentar a quantidade |
---|---|
menor ou igual a 7 dias | 0.40 |
entre 7 e 30 dias | entre 0,40 e 0,37, calculada 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 de página inferida pelo Google
Ao rastrear as páginas da Web na loja 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 inferidas de dados da página esquema. Esses dados inferidos incluem as seguintes propriedades de data predefinidas:
datePublished
: data e hora em que a página foi publicada pela primeira vezdateModified
: a data e a hora em que a página foi modificada pela última vez
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 otimizar sua página. Por exemplo, é possível
defina a especificação de otimização configurando 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 somente quando o Google tem muita confiança. Quando esses valores de data estão ausentes, esses campos se tornam nulos.
O Google recomenda que o proprietário do domínio ou site o administrador atualiza essas propriedades para suas páginas da web e atualizar manualmente os dados do seu site da Vertex AI para Pesquisa após a atualização. Para mais informações, consulte a Central de Ajuda A Pesquisa Google sabe qual é a melhor data para sua Web página do blog e saiba Como os dados estruturados funcionam no Google Pesquisa.
Para adicionar atributos de dados estruturados personalizados e enriquecer seu índice, consulte Adicionar atributos de dados estruturados personalizados ao esquema do repositório de dados
Controle o valor do bônus com o filtro de relevância
Além de fatores que influenciam a classificação de um resultado, como
correspondência de palavra-chave, correspondência de contexto e relevância, a condição de otimização afeta a classificação de
a um resultado significativamente. 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 diferentes documentos com diferentes datas de publicação. Para um consulta específica, a tabela a seguir representa a classificação absoluta sem implementar filtros de valor de bônus ou de relevância e indicar a relevância dos documentos a serem consultados.
Documento | Data de publicação | Relevância | Classificação |
---|---|---|---|
A | 1o 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ê vai adicionar as seguintes condições à sua solicitação de pesquisa:
- O filtro de relevância foi definido como
LOW
. - Impulsione o valor para que os documentos publicados nos últimos 31 dias sejam otimizados em um valor de 0,7 e documentos com mais de uma semana, mas com mais de 60 dias, impulsionado pelo valor de 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 | 1o de fevereiro de 2024 | Alta | #3 |
B | 1 de março de 2024 | Alta | #4 |
O resultado com a relevância mais baixa é filtrado devido a esse filtro. Os documentos menos relevantes para uma consulta são classificados como principais resultados porque são impulsionados por uma grande quantidade de aumento. Os resultados mais relevantes são classificados em uma posição mais baixa.
Por isso, o Google recomenda que você inicie o valor de bônus com um valor baixo e preciso e ajustá-lo de acordo com o resultado da pesquisa. Nesse exemplo, começar com valores de aumento de 0,1 ou menos pode buscar resultados mais relevantes na parte de cima.
A seguir
- Faça uma solicitação de pesquisa com a especificação de otimização
no campo
boostSpec
. - Para entender o impacto do aumento na qualidade da pesquisa de um app de pesquisa genérico, avalie a qualidade da pesquisa. Para mais informações, consulte Avaliar a qualidade da pesquisa.