O widget da Pesquisa fornece uma interface de pesquisa personalizada para aplicativos da Web. Ele requer o mínimo de HTML e JavaScript para ser implementado e é compatível com recursos comuns, como atributos e paginação. Também é possível personalizar a interface com CSS e JavaScript.
Se você precisar de mais flexibilidade, use a API Query. Consulte Como criar uma interface de pesquisa com a API Query.
Criar uma interface de pesquisa
A criação da interface de pesquisa requer estas etapas:
- Configure um app de pesquisa.
- Gere um ID de cliente para o aplicativo.
- Adicione marcação HTML à caixa de pesquisa e aos resultados.
- Carregue o widget na página.
- Inicialize o widget.
Configurar um aplicativo de pesquisa
Cada interface de pesquisa precisa de um aplicativo de pesquisa definido no Admin Console. O aplicativo fornece configurações de consulta, como origens de dados, atributos e parâmetros de qualidade de pesquisa.
Para criar um aplicativo de pesquisa, consulte Criar uma experiência de pesquisa personalizada.
Gerar um ID do cliente para o app
Além das etapas em Configurar o acesso à API Cloud Search, gere um ID de cliente para seu aplicativo da Web.
Ao configurar o projeto:
- Selecione o tipo de cliente Navegador da Web.
- Forneça o URI de origem do seu app.
- Anote o ID do cliente. O widget não exige uma chave secreta do cliente.
Para mais informações, consulte OAuth 2.0 para aplicativos da Web do lado do cliente.
Adicionar marcação HTML
O widget requer estes elementos HTML:
- Um elemento
inputpara a caixa de pesquisa. - Um elemento para ancorar a caixa de diálogo de sugestão.
- Um elemento para os resultados da pesquisa.
- (Opcional) Um elemento para controles de atributos.
Este snippet mostra elementos identificados pelos atributos id:
Carregar o widget
Inclua o carregador usando uma tag <script>:
Forneça um callback onload. Quando o carregador estiver pronto, chame
gapi.load()
para carregar os módulos do cliente API, do Login do Google e do Cloud Search.
Inicializar o widget
Inicialize a biblioteca de cliente usando gapi.client.init() ou
gapi.auth2.init() com seu ID de cliente e o escopo
https://www.googleapis.com/auth/cloud_search.query. Use as classes
de builder para configurar e vincular o widget.
Exemplo de inicialização:
Variáveis de configuração:
Personalizar a experiência de login
O widget pede que os usuários façam login quando começam a digitar. Use o Login do Google para sites e tenha uma experiência personalizada.
Autorizar usuários diretamente
Use o recurso Fazer login com o Google para monitorar e gerenciar estados de login.
Este exemplo usa GoogleAuth.signIn() em um clique de botão:
Fazer login automático dos usuários
Pré-autorize o aplicativo para os usuários da sua organização e simplifique o login. Isso também é útil com o Cloud Identity Aware Proxy. Consulte Usar o Login do Google com aplicativos de TI.
Personalizar a interface
Para mudar a aparência do widget, faça o seguinte:
- Substituir estilos com CSS.
- Decorar elementos com um adaptador.
- Criar elementos personalizados com um adaptador.
Substituir estilos com CSS
O widget inclui o próprio CSS. Para substituir, use seletores de ancestral para aumentar a especificidade:
#suggestions_anchor .cloudsearch_suggestion_container {
font-size: 14px;
}
Consulte a referência Classes CSS compatíveis.
Decorar elementos com um adaptador
Crie e registre um adaptador para modificar elementos antes da renderização. Este exemplo adiciona uma classe CSS personalizada:
Registre o adaptador durante a inicialização:
Criar elementos personalizados com um adaptador
Implemente createSuggestionElement, createFacetResultElement ou
createSearchResultElement para criar componentes de interface personalizados. Este exemplo usa tags HTML <template>:
Registre o adaptador:
Os elementos de refinamento personalizados precisam seguir estas regras:
- Anexe
cloudsearch_facet_bucket_clickablea elementos clicáveis. - Encapsule cada bucket em um
cloudsearch_facet_bucket_container. - Mantenha a ordem dos intervalos da resposta.
Por exemplo, o snippet a seguir renderiza atributos usando links em vez de caixas de seleção.
Personalizar o comportamento da pesquisa
Substitua as configurações do app de pesquisa interceptando solicitações com um adaptador.
Implemente interceptSearchRequest para modificar solicitações antes da execução. Este exemplo restringe as consultas a uma fonte selecionada:
Registre o adaptador:
O HTML a seguir é usado para exibir uma caixa de seleção para filtragem por origens:
O código a seguir escuta a mudança, define a seleção e executa a consulta novamente, se necessário.
É possível também interceptar a resposta da pesquisa implementando
interceptSearchResponse
no adaptador.
Fixar versões
- Versão da API: defina
cloudsearch.config/apiVersionantes da inicialização. - Versão do widget: use
gapi.config.update('cloudsearch.config/clientVersion', 1.1).
O padrão é 1,0 se não estiver definido.
Por exemplo, para fixar o widget na versão 1.1:
Proteja a interface de pesquisa
Siga as práticas recomendadas de segurança para aplicativos da Web, especialmente para evitar clickjacking.
Ativar depuração
Use
interceptSearchRequest
para ativar a depuração:
if (!request.requestOptions) {
request.requestOptions = {};
}
request.requestOptions.debugOptions = {enableDebugging: true};
return request;