É 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 com isso. 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 atualização.
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. Para mais informações sobre controles de otimização, consulte Sobre os controles de otimização.
Esta página descreve os seguintes tipos de especificações de otimização:
- Otimização com uma condição fixa
- Otimização usando atributos numéricos personalizados
- Otimização de acordo com a atualização
Otimização com uma condição fixa
Para otimizar os resultados por um valor fixo com base em se eles atendem a uma condição, faça o seguinte:
Especifique a especificação de otimização no
boostSpeccampo ao enviar umaservingConfigs.searchsolicitação.{ "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 aos quais a otimização é aplicada. 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 (aparecem mais abaixo nos resultados). Quando o valor é positivo, os resultados são promovidos (aparecem mais acima nos resultados).
Exemplo de caso de uso
Suponha que seu repositório de dados contenha dados sobre hotéis e as notas deles. Você quer otimizar hotéis com notas iguais ou superiores 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 por um valor igual.
{
"boostSpec": {
"conditionBoostSpecs": {
"condition": "star_rating>=3.0",
"boost": 0.7
}
}
}
Otimização usando atributos numéricos personalizados
É possível otimizar os resultados com base em atributos numéricos personalizados de maneira linear por partes , especificando pontos de controle e os valores de otimização correspondentes.
Para especificar uma especificação de otimização usando atributos numéricos personalizados, faça o seguinte:
Especifique a especificação de otimização no
boostSpeccampo ao enviar umaservingConfigs.searchsolicitação.{ "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 aos quais a otimização é aplicada. 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 da otimização.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 (aparecem mais abaixo nos resultados). Quando o valor é positivo, os resultados são promovidos (aparecem mais acima nos resultados). Indica o valor de otimização 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 da otimização |
|---|---|
| Menor que o primeiro ponto de controle | É igual ao valor de otimização do primeiro ponto de controle |
| Igual ao ponto de controle | É igual ao valor de otimização mapeado |
| Entre pontos de controle | É calculado por interpolação linear |
| Maior que o último ponto de controle | É igual ao valor de otimização 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 otimizar os resultados da pesquisa de hotéis de acordo com as notas. É 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 esse cenário, os resultados da pesquisa são otimizados da seguinte maneira:
| Nota com estrelas | Valor da otimização |
|---|---|
| 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 |
Otimização de acordo com a atualização
É possível otimizar os resultados com base em atributos de data e hora de maneira linear por partes , especificando pontos de controle e os valores de otimização correspondentes.
Para especificar uma especificação de otimização usando atributos de data e hora personalizados, faça o seguinte:
Especifique a especificação de otimização no
boostSpeccampo ao enviar umaservingConfigs.searchsolicitação.{ "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 aos quais a otimização é aplicada. O filtro precisa ser avaliado como um valor booleano.DATETIME_FIELD_NAME: o nome do campo de um atributoDATETIMEpersonalizado, como data de publicação ou data da última atualização, ou um atributo inferido pelo Google predefinido, comodatePublished.DURATION_VALUE: o valor de duração no tipo de dadosdayTimeDurationque decide a atualização de um documento. Ele é calculado como a duração entre a data e hora em que a pesquisa é realizada e a data e hora do atributo de data e hora personalizado de um documento. O valor de 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: um número de ponto flutuante no intervalo [-1,1]. Quando o valor é negativo, os resultados são rebaixados (aparecem mais abaixo nos resultados). Quando o valor é positivo, os resultados são promovidos (aparecem mais acima nos resultados). Indica o valor de otimização 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 | Valor da otimização |
|---|---|
| Menor que o primeiro ponto de controle | É igual ao valor de otimização do primeiro ponto de controle |
| Igual a um determinado ponto de controle | É igual ao valor de otimização mapeado |
| Entre pontos de controle | É calculado por interpolação linear |
| Maior que o último ponto de controle | É igual ao valor de otimização 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 tenha uma data de publicação. Você quer otimizar os resultados da pesquisa de acordo com a atualização. É possível definir a especificação de otimização 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 esse cenário, os resultados da pesquisa são otimizados da seguinte maneira:
| Atualização | Valor da otimização |
|---|---|
| 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 |
Regular o valor de otimização com o filtro de relevância
Além de 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 otimização afeta significativamente a classificação de um resultado. Portanto, é necessário calibrar cuidadosamente o valor de otimização, especialmente 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 otimização ou filtros de relevância e indica a relevância dos documentos para a consulta.
| 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 | Menor | #3 |
| D | 1º de maio de 2024 | Média | #4 |
| E | 1º de junho de 2024 | Baixa | #5 |
Em 6 de junho de 2024, você adiciona as seguintes condições de pesquisa à sua solicitação de pesquisa:
- Filtro de relevância definido como
LOW. - Valor de otimização para que os documentos publicados nos últimos 31 dias sejam otimizados por um valor de 0,7 e os documentos mais antigos que uma semana, mas mais recentes que 60 dias, sejam otimizados por um valor de 0,6.
Na saída da pesquisa, os resultados são filtrados primeiro por relevância e, em seguida, o valor de otimização é aplicado. Portanto, as condições aplicadas alteram a classificação das páginas nos resultados da seguinte maneira:
| Documento | Data de publicação | Relevância | Classificação |
|---|---|---|---|
| E | 1º de junho de 2024 | Baixa | #1 |
| D | 1º de maio de 2024 | Média | #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 resultados principais porque são otimizados por um grande valor de otimização. Os resultados mais relevantes são classificados mais abaixo.
Portanto, o Google recomenda que você comece o valor de otimização com um valor baixo e preciso e ajuste o valor dependendo da saída da pesquisa. Neste exemplo, começar com valores de otimização de 0,1 ou menos pode gerar 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 da otimização na qualidade da pesquisa de um app de pesquisa personalizado, avalie a qualidade da pesquisa. Para mais informações, consulte Avaliar a qualidade da pesquisa.