Configurare l'interfaccia utente

Questa pagina del tutorial su Google Cloud Search mostra come configurare un di ricerca utilizzando il widget di ricerca incorporabile. Per iniziare dall'inizio di questo tutorial, consulta Tutorial introduttivo su Cloud Search.

Installa le dipendenze

  1. Se il connettore sta ancora indicizzando il repository, apri una nuova shell e continua da lì.

  2. Dalla riga di comando, cambia directory in cloud-search-samples/end-to-end/search-interface.

  3. Per scaricare le dipendenze richieste sul server web, esegui questo comando:

npm install

Crea le credenziali dell'applicazione di ricerca

Il connettore richiede le credenziali dell'account di servizio per chiamare Cloud Search su quelle di livello inferiore. Per creare le credenziali:

  1. Torna alla console Google Cloud.

  2. Nel menu di navigazione a sinistra, fai clic su Credenziali.

  3. Nell'elenco a discesa Crea credenziali, seleziona ID client OAuth. L'opzione "Crea ID client OAuth" .

  4. (Facoltativo) Se non hai configurato la schermata per il consenso, fai clic su CONFIGURA SCHERMATA DI CONSENSO. L'opzione "Consenso OAuth" viene visualizzata la schermata iniziale.

    1. Fai clic su Interno e poi su CREA. Un altro "Consenso OAuth" schermata .

    2. Compila i campi obbligatori. Per ulteriori istruzioni, chiedi all'utente sezione relativa al consenso di Configurare OAuth 2.0.

  5. Fai clic sull'elenco a discesa Tipo di applicazione e seleziona Applicazione web.

  6. Nel campo Nome, inserisci "tutorial".

  7. Nel campo Origini JavaScript autorizzate, fai clic su AGGIUNGI URI. Un campo vuoto "URI" .

  8. Nel campo URI, inserisci http://localhost:8080.

  9. Fai clic su CREA. Il riquadro "Client OAuth creato" viene visualizzata la schermata iniziale.

  10. Prendi nota dell'ID client. Questo valore viene utilizzato per identificare l'applicazione quando richiedere l'autorizzazione dell'utente con OAuth2. Il client secret non è obbligatorio per questa implementazione.

  11. Fai clic su OK.

Crea l'applicazione di ricerca

Quindi, crea un'applicazione di ricerca nella Console di amministrazione. L'applicazione di ricerca è una rappresentazione virtuale dell'interfaccia di ricerca e la sua configurazione predefinita configurazione.

  1. Torna alla Console di amministrazione Google.
  2. Fai clic sull'icona App. La sezione "Amministrazione app" .
  3. Fai clic su Google Workspace. La pagina "Amministrazione di Google Workspace per le app" .
  4. Scorri verso il basso e fai clic su Cloud Search. Le "Impostazioni per Google Workspace" pagina .
  5. Fai clic su Applicazioni di ricerca. La sezione "Search Appplications" (Applicazioni di ricerca) .
  6. Fai clic sul pulsante giallo rotondo +. L'opzione "Crea una nuova applicazione di ricerca" .
  7. Nel campo Nome visualizzato, inserisci "tutorial".
  8. Fai clic su CREA.
  9. Fai clic sull'icona a forma di matita accanto all'applicazione di ricerca appena creata ("Modifica applicazione di ricerca"). La sezione "Dettagli dell'applicazione di ricerca" .
  10. Prendi nota dell'ID applicazione.
  11. A destra di Origini dati, fai clic sull'icona a forma di matita.
  12. Accanto a "tutorial", fai clic sull'opzione di attivazione/disattivazione Attiva. Questa opzione di attivazione/disattivazione consente l'origine dati del tutorial per l'applicazione di ricerca appena creata.
  13. A destra del "tutorial" dell'origine dati, fai clic su Opzioni di visualizzazione.
  14. Controlla tutti i facet.
  15. Fai clic su SALVA.
  16. Fai clic su FINE.

Configura l'applicazione web

Dopo aver creato le credenziali e l'app di ricerca, aggiorna l'applicazione configurazione per includere questi valori come segue:

  1. Dalla riga di comando, cambia directory in `cloud-search-samples/end-to-end/search-interface/public.'
  2. Apri il file app.js con un editor di testo.
  3. Individua la variabile searchConfig nella parte superiore del file.
  4. Sostituisci [client-id] con l'ID client OAuth creato in precedenza.
  5. Sostituisci [application-id] con l'ID applicazione di ricerca indicato in sezione precedente.
  6. Salva il file.

Eseguire l'applicazione

Avvia l'applicazione eseguendo questo comando:

npm run start

Eseguire una query sull'indice

Per eseguire una query sull'indice utilizzando il widget di ricerca:

  1. Apri il browser e vai a http://localhost:8080.
  2. Fai clic su Accedi per autorizzare l'app a eseguire query in Cloud Search. per tuo conto.
  3. Nella casella di ricerca, inserisci una query, ad esempio la parola "test", e premi Invio. La pagina dovrebbe mostrare i risultati della query insieme ai facet e controlli di impaginazione per navigare tra i risultati.

Revisione del codice

Le restanti sezioni esaminano il modo in cui è creata l'interfaccia utente.

Caricamento del widget in corso...

Il widget e le relative librerie vengono caricati in due fasi. Innanzitutto, il bootstrap dello script caricato:

<script src="https://apis.google.com/js/api.js?mods=enable_cloud_search_widget&onload=onLoad" async defer></script>

In secondo luogo, il callback onLoad viene chiamato quando lo script è pronto. Quindi carica le librerie dei widget del client API di Google, di Accedi con Google e di Cloud Search.

/**
 * Load the cloud search widget & auth libraries. Runs after
 * the initial gapi bootstrap library is ready.
 */
function onLoad() {
  gapi.load('client:auth2:cloudsearch-widget', initializeApp)
}

La restante inizializzazione dell'app viene gestita da initializeApp una volta caricate tutte le librerie richieste.

Gestione delle autorizzazioni

Gli utenti devono autorizzare l'app a eseguire query per loro conto. Mentre il widget puoi chiedere agli utenti di autorizzare, puoi migliorare l'esperienza utente e gestire personalmente l'autorizzazione.

Per l'interfaccia di ricerca, l'app presenta due visualizzazioni diverse a seconda sullo stato di accesso dell'utente.

<div class="content">
  <div id="app" hidden>
    <div id="header">
      <button id="sign-out">Sign-out</button>
    </div>
    <!-- Markup for widget...-->
  </div>
  <div id="welcome" hidden>
    <h1>Cloud Search Tutorial</h1>
    <p>Sign in with your Google account to search.</p>
    <button id="sign-in">Sign-in</button>
  </div>
</div>

Durante l'inizializzazione viene abilitata la visualizzazione corretta e i gestori del Gli eventi di accesso e uscita siano configurati:

/**
 * Initialize the app after loading the Google API client &
 * Cloud Search widget.
 */
async function initializeApp() {
  await gapi.auth2.init({
      'clientId': searchConfig.clientId,
      'scope': 'https://www.googleapis.com/auth/cloud_search.query'
  });

  let auth = gapi.auth2.getAuthInstance();

  // Watch for sign in status changes to update the UI appropriately
  let onSignInChanged = (isSignedIn) => {
    document.getElementById("app").hidden = !isSignedIn;
    document.getElementById("welcome").hidden = isSignedIn;
    if (resultsContainer) {
      resultsContainer.clear();
    }
  }
  auth.isSignedIn.listen(onSignInChanged);
  onSignInChanged(auth.isSignedIn.get()); // Trigger with current status

  // Connect sign-in/sign-out buttons
  document.getElementById("sign-in").onclick = (e) =>  auth.signIn();
  document.getElementById("sign-out").onclick = (e) => auth.signOut();

  // ...

}

Creazione dell'interfaccia di ricerca

Il widget di ricerca richiede una piccola quantità di markup HTML per la ricerca e contenere i risultati di ricerca:

<div id="search_bar">
  <div>
    <div id="suggestions_anchor">
      <input type="text" id="search_input" placeholder="Search for...">
    </div>
  </div>
</div>
<div id="facet_results" ></div>
<div id="search_results" ></div>

Il widget è inizializzato e associato agli elementi di input e container durante l'inizializzazione:

gapi.config.update('cloudsearch.config/apiVersion', 'v1');
resultsContainer = new gapi.cloudsearch.widget.resultscontainer.Builder()
  .setSearchApplicationId(searchConfig.searchAppId)
  .setSearchResultsContainerElement(document.getElementById('search_results'))
  .setFacetResultsContainerElement(document.getElementById('facet_results'))
  .build();

const searchBox = new gapi.cloudsearch.widget.searchbox.Builder()
  .setSearchApplicationId(searchConfig.searchAppId)
  .setInput(document.getElementById('search_input'))
  .setAnchor(document.getElementById('suggestions_anchor'))
  .setResultsContainer(resultsContainer)
  .build();

Congratulazioni, hai completato correttamente il tutorial. Continua su per istruzioni per la pulizia.

Indietro Avanti