Il widget di ricerca fornisce un'interfaccia di ricerca personalizzabile per le applicazioni web. Richiede un codice HTML e JavaScript minimo per l'implementazione e supporta funzionalità comuni come sfaccettature e paginazione. Puoi anche personalizzare l'interfaccia con CSS e JavaScript.
Se hai bisogno di maggiore flessibilità, utilizza l'API Query. Consulta Creare un'interfaccia di ricerca con l'API Query.
Crea un'interfaccia di ricerca
La creazione dell'interfaccia di ricerca richiede i seguenti passaggi:
- Configurare 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 sulla pagina.
- Inizializza il widget.
Configurare un'applicazione di ricerca
Ogni interfaccia di ricerca richiede un'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 Crea un'esperienza di ricerca personalizzata.
Generare un ID client per l'applicazione
Oltre ai passaggi descritti in Configurare l'accesso all'API Cloud Search, genera un ID client per la tua applicazione web.
Durante la configurazione del progetto:
- Seleziona il tipo di client Browser web.
- Fornisci l'URI dell'origine della tua app.
- Prendi nota dell'ID client. Il widget non richiede un client secret.
Per saperne di più, 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 dai relativi attributi id:
Caricare il widget
Includi il caricatore utilizzando un tag <script>:
Fornisci un onload richiamo. Quando il caricatore è pronto, chiama
gapi.load()
per caricare il client API, l'accesso con Google e i moduli
di 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
del builder 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 gli utenti direttamente
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
Preautorizza l'applicazione per gli utenti della tua organizzazione per semplificare l'accesso. Ciò è utile anche con Cloud Identity Aware Proxy. Vedi Utilizzare Accedi con Google con le app IT.
Personalizzare l'interfaccia
Puoi modificare l'aspetto del widget:
- Sovrascrittura degli stili con CSS.
- Decorare gli elementi con un adattatore.
- Creazione di elementi personalizzati con un adattatore.
Sovrascrivere gli stili con CSS
Il widget include il proprio CSS. Per ignorarlo, utilizza i selettori 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
i tag HTML <template>:
Registra l'adattatore:
Gli elementi delle sfaccettature personalizzate devono rispettare queste regole:
- Collega
cloudsearch_facet_bucket_clickableagli elementi cliccabili. - Racchiudi ogni bucket in un elemento
cloudsearch_facet_bucket_container. - Mantenere l'ordine dei bucket della risposta.
Ad esempio, il seguente snippet esegue il rendering delle sfaccettature 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 una fonte selezionata:
Registra l'adattatore:
Il seguente codice HTML viene utilizzato per visualizzare una casella di selezione per il filtro in base alle origini:
Il codice seguente rileva la modifica, imposta la selezione e riesegue la query, se necessario.
Puoi anche intercettare la risposta alla ricerca implementando
interceptSearchResponse
nell'adattatore.
Bloccare le versioni
- Versione API: imposta
cloudsearch.config/apiVersionprima dell'inizializzazione. - Versione del widget: utilizza
gapi.config.update('cloudsearch.config/clientVersion', 1.1).
Se non impostati, entrambi i valori predefiniti sono 1.0.
Ad esempio, per bloccare il widget sulla versione 1.1:
Proteggere l'interfaccia di ricerca
Segui le best practice per la sicurezza delle 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;