Os controles de exibição (também chamados de controles) mudam o comportamento padrão de como uma solicitação é exibida quando os resultados são retornados. Os controles de veiculação agem no nível do repositório de dados.
Por exemplo, os controles podem aumentar e ocultar resultados, filtrar entradas de resultados retornados, associar strings umas às outras como sinônimos ou redirecionar resultados para URIs especificados.
Esta página descreve os controles de exibição para apps de pesquisa. Para informações sobre como usar os controles de veiculação com recomendações de mídia, consulte Criar e gerenciar configurações de veiculação.
Sobre os controles de veiculação
Para mudar os resultados de uma solicitação, primeiro crie um controle de veiculação. Em seguida, anexe esse controle à configuração de exibição de um app de pesquisa. Uma configuração de exibição configura metadados usados para gerar resultados de tempo de exibição, como resultados da pesquisa ou respostas. Um controle de veiculação só afeta as solicitações veiculadas pelo app se o controle estiver anexado à configuração de veiculação do app.
Alguns controles, como os de aumento, têm dependências de repositórios de dados. Se um repositório de dados for removido de um app, todos os controles dependentes do repositório de dados também serão removidos desse app e ficarão inativos, mas não serão excluídos.
Tipos de controle de veiculação
Os seguintes tipos de controles de exibição estão disponíveis:
Controle | Descrição | Disponível para |
---|---|---|
Controle de boost | Muda a ordem de retorno dos resultados | Pesquisar apps com repositórios de dados que oferecem suporte a um esquema, como repositórios que contêm dados estruturados, sites com dados estruturados (indexação avançada de sites), dados não estruturados com metadados ou dados de mídia |
Controle de filtro | Remove entradas dos resultados retornados | Pesquisar apps com repositórios de dados que oferecem suporte a um esquema, como repositórios que contêm dados estruturados, sites (indexação avançada e pesquisa básica), dados não estruturados com metadados ou dados de mídia |
Controle de sinônimos | Associa consultas umas às outras | Pesquisar apps com repositórios de dados de mídia, estruturados ou não estruturados e de sites (indexação avançada de sites) |
Controle de redirecionamento | Redireciona para um URI especificado | Todos os apps de pesquisa |
Sobre as condições
Ao criar um controle, você pode definir uma condição que determina quando o controle é aplicado. As condições são definidas usando campos de condição. Os seguintes campos de condição estão disponíveis:
queryTerms
: um controle opcional que é aplicado quando consultas específicas são pesquisadas. Quando a condiçãoqueryTerms
é usada, o controle é aplicado quando o valor dequeryTerms
corresponde a um termo emSearchRequest.query
. Os termos da consulta só podem ser usados quando aControl.searchUseCase
está definida comoSOLUTION_TYPE_SEARCH
. Até 10queryTerms
diferentes podem ser especificados em uma únicaControl.condition
. Se nenhum termo de consulta for especificado, o campoqueryTerms
será ignorado.activeTimeRange
: um controle opcional que é aplicado quando uma solicitação ocorre em um período especificado. Ele verifica se o horário em que uma solicitação foi recebida está entreactiveTimeRange.startTime
eactiveTimeRange.endTime
. Até 10 intervalos deactiveTimeRange
podem ser especificados em uma únicaControl.condition
. Se o campoactiveTimeRange
não for especificado, ele será ignorado.
Se ambos os tipos de condições forem especificados para um controle, ele será aplicado à solicitação de pesquisa quando ambos os tipos de condição forem atendidos. Se vários valores para a mesma condição forem especificados, apenas um dos valores precisará ser correspondente para que essa condição seja satisfeita.
Por exemplo, considere a seguinte condição com dois termos de consulta especificados:
"queryTerms": [
{
"value": "gShoe",
"fullMatch": true
},
{
"value": "gBoot",
"fullMatch": true
}
]
A condição será atendida para uma solicitação com
SearchRequest.query="gShoe"
ou SearchRequest.query="gBoot"
,
mas não será atendida com SearchRequest.query="gSandal"
ou qualquer outra
string.
Se nenhuma condição for especificada, o controle será aplicado sempre.
Para mais informações, consulte o campo Condition
na referência
da API.
Criar e anexar controles de veiculação do aumento
Um controle de veiculação de aumento é definido como um controle com um boostAction
.
Use as instruções a seguir para criar um controle de veiculação de aumento.
Para detalhes sobre os campos, consulte a
referência da API engines.controls
e a
referência da API engines.controls.create
.
Encontre o ID do app. Se você já tiver o ID do app, pule para a próxima etapa.
No Console do Google Cloud, acesse a página Criador de agentes.
Na página Apps, encontre o nome do app e confira o ID dele na coluna ID.
Execute os comandos curl a seguir para criar os controles.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls?controlId=CONTROL_ID" \ -d '{ "displayName": "DISPLAY_NAME", "solutionType": "SOLUTION_TYPE_SEARCH", "useCases": [ "USE_CASE" ], "conditions": { "queryTerms": [ { "value": "VALUE", "fullMatch": FULL_MATCH } ], "activeTimeRange": [ { "startTime": "START_TIMESTAMP", "endTime": "END_TIMESTAMP" } ] }, "boostAction": { "boost": BOOST_VALUE, "filter": "FILTER", "dataStore": "DATA_STORE_RESOURCE_PATH" } }'
Substitua:
PROJECT_ID
: o número ou ID do seu projeto do Google Cloud.APP_ID
: o ID do app da Vertex AI para Pesquisa.CONTROL_ID
: um identificador exclusivo do controle. O ID pode conter [1-63] caracteres, como letras, dígitos, hifens e sublinhados.DISPLAY_NAME
: o nome legível para o controle. O Google recomenda que esse nome indique quando ou por que usar o controle. Precisa ser uma string codificada em UTF-8 com comprimento [1,128].USE_CASE
: precisa serSEARCH_USE_CASE_SEARCH
ouSEARCH_USE_CASE_BROWSE
. SeSEARCH_USE_CASE_BROWSE
for especificado,Condition.queryTerms
não poderá ser usado na condição.CONDITION
: um campo opcional que define quando o controle precisa ser aplicado. Contém os seguintes campos:VALUE
: o valor específico da consulta a ser comparado. É uma string UTF-8 com letras minúsculas e comprimento[1, 5000]
. SeFULL_MATCH_1
fortrue
, esse campo poderá ter no máximo três termos separados por espaços.FULL_MATCH
: um booleano que indica se a consulta de pesquisa precisa corresponder exatamente ao termo da consulta. Quando definido comotrue
, ele exige queSearchRequest.query
corresponda completamente aoqueryTerm.value
. Quando definido comofalse
, ele exige queSearchRequest.query
contenhaqueryTerm.value
como uma substring.START_TIMESTAMP
: um carimbo de data/hora no formato "Zulu" UTC RFC 3339 para indicar o início de um intervalo de tempo.END_TIMESTAMP
: um carimbo de data/hora no formato "Zulu" UTC RFC 3339 para indicar o fim de um período.
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). Para mais informações, consulteboostAction
.FILTER
: uma string que especifica os requisitos que precisam ser atendidos pelo documento. Se o documento atender a todos os requisitos, o impulso será aplicado. Caso contrário, não há mudanças. Se esse campo estiver vazio, o aumento será aplicado a todos os documentos no repositório de dados. Para a sintaxe de filtragem, consulte Sintaxe da expressão de filtro. Observação: o campo de documentotitle
não pode ser filtrado.DATA_STORE_RESOURCE_PATH
: o caminho completo do recurso do repositório de dados cujos documentos precisam ser impulsionados por esse controle. O formato do caminho completo do recurso éprojects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATA_STORE_ID
. Esse repositório de dados precisa ser anexado ao mecanismo especificado na solicitação.
Anexe o controle à configuração de exibição do app usando o método
engines.servingConfigs.patch
.curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search?update_mask=boost_control_ids" \ -d '{ "boostControlIds": ["BOOST_ID_1", "BOOST_ID_2"] }'
Substitua
BOOST_ID_N
pelos IDs de controle que você criou na etapa anterior.
Criar e anexar controles de veiculação de filtro
Um controle de veiculação de filtro é definido como um controle com um filterAction
.
Use as instruções a seguir para criar um controle de veiculação de filtro.
Para detalhes sobre os campos, consulte a
referência da API engines.controls
e a
referência da API engines.controls.create
.
Encontre o ID do app. Se você já tiver o ID do app, pule para a próxima etapa.
No Console do Google Cloud, acesse a página Criador de agentes.
Na página Apps, encontre o nome do app e confira o ID dele na coluna ID.
Execute os comandos curl a seguir para criar os controles.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls?controlId=CONTROL_ID" \ -d '{ "displayName": "DISPLAY_NAME", "solutionType": "SOLUTION_TYPE_SEARCH", "useCases": ["USE_CASE"], "conditions": { "queryTerms": [ { "value": "VALUE", "fullMatch": FULL_MATCH } ], "activeTimeRange": [ { "startTime": "START_TIMESTAMP", "endTime": "END_TIMESTAMP" } ] }, "filterAction": { "filter": "FILTER" } }'
Substitua:
PROJECT_ID
: o número ou ID do seu projeto do Google Cloud.APP_ID
: o ID do app da Vertex AI para Pesquisa.CONTROL_ID
: um identificador exclusivo do controle. O ID pode conter [1-63] caracteres, como letras, dígitos, hifens e sublinhados.DISPLAY_NAME
: o nome legível para o controle. O Google recomenda que esse nome indique quando ou por que usar o controle. Precisa ser uma string codificada em UTF-8 com comprimento [1,128].USE_CASE
: precisa serSEARCH_USE_CASE_SEARCH
ouSEARCH_USE_CASE_BROWSE
. SeSEARCH_USE_CASE_BROWSE
for especificado,Condition.queryTerms
não poderá ser usado na condição.CONDITION
: um campo opcional que define quando o controle precisa ser aplicado. Contém os seguintes campos:VALUE
: o valor específico da consulta a ser comparado. É uma string UTF-8 com letras minúsculas e comprimento[1, 5000]
. SeFULL_MATCH_1
fortrue
, esse campo poderá ter no máximo três termos separados por espaços.FULL_MATCH
: um booleano que indica se a consulta de pesquisa precisa corresponder exatamente ao termo da consulta. Quando definido comotrue
, ele exige queSearchRequest.query
corresponda completamente aoqueryTerm.value
. Quando definido comofalse
, ele exige queSearchRequest.query
contenhaqueryTerm.value
como uma substring.START_TIMESTAMP
: um carimbo de data/hora no formato "Zulu" UTC RFC 3339 para indicar o início de um intervalo de tempo.END_TIMESTAMP
: um carimbo de data/hora no formato "Zulu" UTC RFC 3339 para indicar o fim de um período.
FILTER
: uma string que especifica os requisitos que precisam ser atendidos pelo documento. Se o documento atender a todos os requisitos, ele será retornado nos resultados. Caso contrário, o documento não vai aparecer nos resultados. Para a sintaxe de filtragem, consulte Sintaxe da expressão de filtro. Veja mais informações emfilterAction
. Observação: o campo de documentotitle
não pode ser filtrado.
Anexe o controle à configuração de exibição do app usando o método
engines.servingConfigs.patch
.curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search?update_mask=filter_control_ids" \ -d '{ "filterControlIds": ["FILTER_ID_1", "FILTER_ID_2"] }'
Substitua
FILTER_ID_N
pelos IDs de controle que você criou na etapa anterior.
Criar e anexar controles de veiculação de sinônimos
Um controle de exibição de sinônimos é definido como um controle com um synonymsAction
.
Use as instruções a seguir para criar um controle de veiculação de sinônimos.
Para detalhes sobre os campos, consulte a
referência da API engines.controls
e a
referência da API engines.controls.create
.
Encontre o ID do app. Se você já tiver o ID do app, pule para a próxima etapa.
No Console do Google Cloud, acesse a página Criador de agentes.
Na página Apps, encontre o nome do app e confira o ID dele na coluna ID.
Execute os comandos curl a seguir para criar os controles.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls?controlId=CONTROL_ID" \ -d '{ "displayName": "DISPLAY_NAME", "solutionType": "SOLUTION_TYPE_SEARCH", "useCases": ["USE_CASE"], "conditions": { "queryTerms": [ { "value": "VALUE", "fullMatch": FULL_MATCH } ], "activeTimeRange": [ { "startTime": "START_TIMESTAMP", "endTime": "END_TIMESTAMP" } ] }, "synonymsAction": { "synonyms": ["SYNONYMS_1","SYNONYMS_2"] } }'
Substitua:
PROJECT_ID
: o número ou ID do seu projeto do Google Cloud.APP_ID
: o ID do app da Vertex AI para Pesquisa.CONTROL_ID
: um identificador exclusivo do controle. O ID pode conter [1-63] caracteres, como letras, dígitos, hifens e sublinhados.DISPLAY_NAME
: o nome legível para o controle. O Google recomenda que esse nome indique quando ou por que usar o controle. Precisa ser uma string codificada em UTF-8 com comprimento [1,128].USE_CASE
: precisa serSEARCH_USE_CASE_SEARCH
ouSEARCH_USE_CASE_BROWSE
. SeSEARCH_USE_CASE_BROWSE
for especificado,Condition.queryTerms
não poderá ser usado na condição.CONDITION
: um campo opcional que define quando o controle precisa ser aplicado. Contém os seguintes campos:VALUE
: o valor específico da consulta a ser comparado. É uma string UTF-8 com letras minúsculas e comprimento[1, 5000]
. SeFULL_MATCH_1
fortrue
, esse campo poderá ter no máximo três termos separados por espaços.FULL_MATCH
: um booleano que indica se a consulta de pesquisa precisa corresponder exatamente ao termo da consulta. Quando definido comotrue
, ele exige queSearchRequest.query
corresponda completamente aoqueryTerm.value
. Quando definido comofalse
, ele exige queSearchRequest.query
contenhaqueryTerm.value
como uma substring.START_TIMESTAMP
: um carimbo de data/hora no formato "Zulu" UTC RFC 3339 para indicar o início de um intervalo de tempo.END_TIMESTAMP
: um carimbo de data/hora no formato "Zulu" UTC RFC 3339 para indicar o fim de um período.
SYNONYMS_N
: uma lista de strings associadas uma à outra, o que aumenta a probabilidade de cada uma delas mostrar resultados semelhantes. Embora seja mais provável que você receba resultados semelhantes, ao pesquisar cada uma das entradas de sinônimo, talvez você não receba todos os resultados relevantes para todos os sinônimos associados. É preciso especificar pelo menos dois sinônimos e é possível especificar até 100 sinônimos. Cada sinônimo precisa ser codificado em UTF-8 e estar em letras minúsculas. Não são permitidas strings duplicadas. Por exemplo, você pode adicionar "pixel", "smartphone Android" e "smartphone Google" como sinônimos. Para ver mais informações, consultesynonymsAction
.
Anexe o controle à configuração de exibição do app usando o método
engines.servingConfigs.patch
.curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search?update_mask=synonyms_control_ids" \ -d '{ "synonymsControlIds": ["SYNONYMS_ID_1", "SYNONYMS_ID_2"] }'
Substitua
SYNONYMS_ID_N
pelos IDs de controle que você criou na etapa anterior.
Criar e anexar controles de veiculação de redirecionamento
Um controle de veiculação de redirecionamento permite redirecionar os usuários para um URI fornecido.
Os controles de redirecionamento são definidos como um controle com um redirectAction
.
Use as instruções a seguir para criar um controle de veiculação de redirecionamento.
Para detalhes sobre os campos, consulte a
referência da API engines.controls
e a
referência da API engines.controls.create
.
Encontre o ID do app. Se você já tiver o ID do app, pule para a próxima etapa.
No Console do Google Cloud, acesse a página Criador de agentes.
Na página Apps, encontre o nome do app e confira o ID dele na coluna ID.
Execute os comandos curl a seguir para criar os controles.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls?controlId=CONTROL_ID" \ -d '{ "displayName": "DISPLAY_NAME", "solutionType": "SOLUTION_TYPE_SEARCH", "useCases": ["USE_CASE"], "conditions": { "queryTerms": [ { "value": "VALUE", "fullMatch": FULL_MATCH } ], "activeTimeRange": [ { "startTime": "START_TIMESTAMP", "endTime": "END_TIMESTAMP" } ] }, "redirectAction": { "redirectURI": "REDIRECT_URI" } }'
Substitua:
PROJECT_ID
: o número ou ID do seu projeto do Google Cloud.APP_ID
: o ID do app da Vertex AI para Pesquisa.CONTROL_ID
: um identificador exclusivo do controle. O ID pode conter [1-63] caracteres, como letras, dígitos, hifens e sublinhados.DISPLAY_NAME
: o nome legível para o controle. O Google recomenda que esse nome indique quando ou por que usar o controle. Precisa ser uma string codificada em UTF-8 com comprimento [1,128].USE_CASE
: precisa serSEARCH_USE_CASE_SEARCH
ouSEARCH_USE_CASE_BROWSE
. SeSEARCH_USE_CASE_BROWSE
for especificado,Condition.queryTerms
não poderá ser usado na condição.CONDITION
: um campo opcional que define quando o controle precisa ser aplicado. Contém os seguintes campos:VALUE
: o valor específico da consulta a ser comparado. É uma string UTF-8 com letras minúsculas e comprimento[1, 5000]
. SeFULL_MATCH_1
fortrue
, esse campo poderá ter no máximo três termos separados por espaços.FULL_MATCH
: um booleano que indica se a consulta de pesquisa precisa corresponder exatamente ao termo da consulta. Quando definido comotrue
, ele exige queSearchRequest.query
corresponda completamente aoqueryTerm.value
. Quando definido comofalse
, ele exige queSearchRequest.query
contenhaqueryTerm.value
como uma substring.START_TIMESTAMP
: um carimbo de data/hora no formato "Zulu" UTC RFC 3339 para indicar o início de um intervalo de tempo.END_TIMESTAMP
: um carimbo de data/hora no formato "Zulu" UTC RFC 3339 para indicar o fim de um período.
REDIRECT_URI_N
: um URI para onde você é redirecionado. Pode ter um comprimento máximo de 2.000 caracteres. Por exemplo, se o valor do termo da consulta for "suporte", você poderá definir um redirecionamento para sua página de suporte técnico em vez de retornar (ou não retornar) os resultados da pesquisa para "suporte". Neste exemplo, o URI de redirecionamento passa a ser"https://www.example.com/support"
. Veja mais informações emredirectAction
.
Anexe o controle à configuração de exibição do app usando o método
engines.servingConfigs.patch
.curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search?update_mask=redirect_control_ids" \ -d '{ "redirectControlIds": ["REDIRECT_ID_1", "REDIRECT_ID_2"] }'
Substitua
REDIRECT_ID_N
pelos IDs de controle que você criou na etapa anterior.
A seguir
- Para entender o impacto de um controle de veiculação 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.