Il widget di ricerca fornisce un'interfaccia di ricerca personalizzabile per le applicazioni web. Per l'implementazione sono necessari HTML e JavaScript minimi e supporta funzionalità comuni come facet e paginazione. Puoi anche personalizzare l'interfaccia con CSS e JavaScript.
Se hai bisogno di maggiore flessibilità, utilizza la Query API. Consulta Creare un'interfaccia di ricerca con la Query API.
Creare un'interfaccia di ricerca
La creazione dell'interfaccia di ricerca richiede i seguenti passaggi:
- Configura un'applicazione di ricerca.
- Genera un ID client per l'applicazione.
- Aggiungi il markup HTML per la casella di ricerca e i risultati.
- Carica il widget nella pagina.
- Inizializza il widget.
Configurare un'applicazione di ricerca
Ogni interfaccia di ricerca richiede una applicazione di ricerca definita nella Console di amministrazione. L'applicazione fornisce impostazioni di query, come origini dati, facet e parametri di qualità della ricerca.
Per creare un'applicazione di ricerca, consulta Creare un'esperienza di ricerca personalizzata.
Generare un ID client per l'applicazione
Oltre ai passaggi descritti in Configurare l'accesso alla Cloud Search API, genera un ID client per la tua applicazione web.
Quando configuri il progetto:
- Seleziona il tipo di client Browser web.
- Fornisci l'URI di origine della tua app.
- Prendi nota dell'ID client. Il widget non richiede un client secret.
Per ulteriori informazioni, consulta OAuth 2.0 per applicazioni web lato client.
Aggiungere il markup HTML
Il widget richiede i seguenti elementi HTML:
- Un elemento
inputper la casella di ricerca. - Un elemento per ancorare la finestra di dialogo dei suggerimenti.
- Un elemento per i risultati di ricerca.
- (Facoltativo) Un elemento per i controlli dei facet.
Questo snippet mostra gli elementi identificati dagli attributi id:
Caricare il widget
Includi il caricatore utilizzando un <script> tag:
Fornisci un callback onload. Quando il caricatore è pronto, chiama
gapi.load()
per caricare il client API, Accedi con Google e i moduli Cloud Search.
Inizializzare il widget
Inizializza la libreria client utilizzando gapi.client.init() o gapi.auth2.init() con il tuo ID client e l'ambito https://www.googleapis.com/auth/cloud_search.query. Utilizza le classi di creazione per configurare e associare il widget.
Esempio di inizializzazione:
Variabili di configurazione:
Personalizzare l'esperienza di accesso
Il widget chiede agli utenti di accedere quando iniziano a digitare. Puoi utilizzare Accedi con Google per i siti web per un'esperienza personalizzata.
Autorizzare direttamente gli utenti
Utilizza Accedi con Google per monitorare e gestire gli stati di accesso.
Questo esempio utilizza GoogleAuth.signIn() al clic di un pulsante:
Consentire l'accesso automatico agli utenti
Pre-autorizza l'applicazione per gli utenti della tua organizzazione per semplificare l'accesso. Questa operazione è utile anche con Cloud Identity Aware Proxy. Consulta Utilizzare Accedi con Google con le app IT Apps.
Personalizzare l'interfaccia
Puoi modificare l'aspetto del widget:
- Eseguendo l'override degli stili con CSS.
- Decorando gli elementi con un adattatore.
- Creando elementi personalizzati con un adattatore.
Eseguire l'override degli stili con CSS
Il widget include il proprio CSS. Per eseguirne l'override, utilizza i selettori di antenati per aumentare la specificità:
#suggestions_anchor .cloudsearch_suggestion_container {
font-size: 14px;
}
Consulta il riferimento Classi CSS supportate.
Decorare gli elementi con un adattatore
Crea e registra un adattatore per modificare gli elementi prima del rendering. Questo esempio aggiunge una classe CSS personalizzata:
Registra l'adattatore durante l'inizializzazione:
Creare elementi personalizzati con un adattatore
Implementa createSuggestionElement, createFacetResultElement o createSearchResultElement per creare componenti UI personalizzati. Questo esempio utilizza
HTML <template> tag:
Registra l'adattatore:
Gli elementi dei facet personalizzati devono rispettare le seguenti regole:
- Collega
cloudsearch_facet_bucket_clickableagli elementi su cui è possibile fare clic. - Inserisci ogni bucket in un
cloudsearch_facet_bucket_container. - Mantieni l'ordine dei bucket dalla risposta.
Ad esempio, lo snippet seguente esegue il rendering dei facet utilizzando i link anziché le caselle di controllo.
Personalizzare il comportamento di ricerca
Esegui l'override delle impostazioni dell'applicazione di ricerca intercettando le richieste con un adattatore.
Implementa interceptSearchRequest per modificare le richieste prima dell'esecuzione. Questo esempio limita le query a un'origine selezionata:
Registra l'adattatore:
Il seguente codice HTML viene utilizzato per visualizzare una casella di selezione per filtrare in base alle origini:
Il seguente codice rileva la modifica, imposta la selezione e riesegue la query, se necessario.
Puoi anche intercettare la risposta di ricerca implementando
interceptSearchResponse
nell'adattatore.
Fissare le versioni
- Versione API: imposta
cloudsearch.config/apiVersionprima dell'inizializzazione. - Versione del widget: utilizza
gapi.config.update('cloudsearch.config/clientVersion', 1.1).
Se non impostate, entrambe le versioni predefinite sono 1.0.
Ad esempio, per fissare il widget alla versione 1.1:
Proteggere l'interfaccia di ricerca
Segui le best practice di sicurezza per le applicazioni web, in particolare per prevenire il clickjacking.
Attivare il debug
Utilizza
interceptSearchRequest
per attivare il debug:
if (!request.requestOptions) {
request.requestOptions = {};
}
request.requestOptions.debugOptions = {enableDebugging: true};
return request;