O widget da Pesquisa fornece uma interface de pesquisa personalizada para aplicativos da Web. Ele requer um HTML e JavaScript mínimos para implementação e oferece suporte a 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 Criar uma interface de pesquisa com a API Query.
Criar uma interface de pesquisa
Para criar a interface de pesquisa, siga estas etapas:
- Configurar um app de pesquisa.
- Gerar um ID de cliente para o aplicativo.
- Adicionar marcação HTML à caixa de pesquisa e aos resultados.
- Carregar o widget na página.
- Inicializar o widget.
Configurar um app de pesquisa
Cada interface de pesquisa requer um app 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 app de pesquisa, consulte Criar uma experiência de pesquisa personalizada.
Gerar um ID de cliente para o aplicativo
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 do navegador da Web.
- Forneça o URI de origem do seu aplicativo.
- Anote o ID do cliente. O widget não requer 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 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 <script> tag:
Forneça um callback onload. Quando o carregador estiver pronto, chame
gapi.load()
para carregar os módulos de cliente da 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 do builder para configurar e vincular o widget.
Exemplo de inicialização:
Variáveis de configuração:
Personalizar a experiência de login
O widget solicita que os usuários façam login quando começam a digitar. Você pode usar Login do Google para sites para uma experiência personalizada.
Autorizar usuários diretamente
Use 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 usuários da sua organização para simplificar 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
É possível mudar a aparência do widget das seguintes maneiras:
- Substituindo estilos por CSS.
- Decorando elementos com um adaptador.
- Criando elementos personalizados com um adaptador.
Substituir estilos por 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 de 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
HTML <template> tags:
Registre o adaptador:
Os elementos de atributos personalizados precisam seguir estas regras:
- Anexe
cloudsearch_facet_bucket_clickablea elementos clicáveis. - Envolva cada bucket em um
cloudsearch_facet_bucket_container. - Mantenha a ordem do bucket da resposta.
Por exemplo, o snippet a seguir renderiza atributos usando links em vez de caixas de seleção.
Personalizar o comportamento de 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 consultas a uma origem 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 alteração, 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;