Widżet wyszukiwania udostępnia konfigurowalny interfejs wyszukiwania dla aplikacji internetowych. Wymaga minimalnej ilości kodu HTML i JavaScriptu, a także obsługuje typowe funkcje, takie jak aspekty i stronicowanie. Możesz też dostosować interfejs za pomocą CSS i JavaScriptu.
Jeśli potrzebujesz większej elastyczności, użyj interfejsu Query API. Zobacz Tworzenie interfejsu wyszukiwania za pomocą interfejsu Query API.
Tworzenie interfejsu wyszukiwania
Tworzenie interfejsu wyszukiwania wymaga wykonania tych czynności:
- skonfigurowanie aplikacji do wyszukiwania.
- Wygeneruj identyfikator klienta aplikacji.
- Dodaj znaczniki HTML dla pola wyszukiwania i wyników.
- Załaduj widżet na stronie.
- Zainicjuj widżet.
Konfigurowanie wyszukiwarki
Każdy interfejs wyszukiwania wymaga aplikacji wyszukiwania zdefiniowanej w konsoli administracyjnej. Aplikacja udostępnia ustawienia zapytania, takie jak źródła danych, aspekty i parametry jakości wyszukiwania.
Aby utworzyć wyszukiwarkę, zapoznaj się z artykułem Tworzenie niestandardowego środowiska wyszukiwania.
Wygeneruj identyfikator klienta aplikacji.
Oprócz czynności opisanych w artykule Konfigurowanie dostępu do interfejsu Cloud Search API wygeneruj identyfikator klienta dla aplikacji internetowej.
Podczas konfigurowania projektu:
- Wybierz typ klienta Przeglądarka.
- Podaj identyfikator URI pochodzenia aplikacji.
- Zapisz identyfikator klienta. Widżet nie wymaga klucza klienta.
Więcej informacji znajdziesz w artykule OAuth 2.0 w przypadku internetowych aplikacji po stronie klienta.
Dodawanie znaczników HTML
Widżet wymaga tych elementów HTML:
- Element
inputw polu wyszukiwania. - Element, do którego jest przypięte okno sugestii.
- Element wyników wyszukiwania.
- (Opcjonalnie) Element sterujący aspektami.
Ten fragment kodu pokazuje elementy zidentyfikowane za pomocą atrybutów id:
Wczytywanie widżetu
Dołącz moduł wczytujący za pomocą tagu <script>:
Podaj onload wywołanie zwrotne. Gdy moduł wczytujący będzie gotowy, wywołaj funkcję gapi.load(), aby wczytać klienta interfejsu API, logowanie przez Google i moduły Cloud Search.
Inicjowanie widżetu
Zainicjuj bibliotekę klienta za pomocą funkcji gapi.client.init() lub gapi.auth2.init(), podając identyfikator klienta i zakres https://www.googleapis.com/auth/cloud_search.query. Użyj klas buildera, aby skonfigurować i powiązać widżet.
Przykładowa inicjalizacja:
Zmienne konfiguracji:
Dostosowywanie procesu logowania
Gdy użytkownicy zaczną pisać, widżet poprosi ich o zalogowanie się. Możesz użyć logowania przez Google w witrynach, aby dostosować usługi do swoich potrzeb.
Bezpośrednie autoryzowanie użytkowników
Aby monitorować stany logowania i nimi zarządzać, użyj funkcji Zaloguj się przez Google.
W tym przykładzie używamy GoogleAuth.signIn() po kliknięciu przycisku:
Automatyczne logowanie użytkowników
Wstępnie autoryzuj aplikację dla użytkowników w organizacji, aby uprościć proces logowania. Jest to przydatne również w przypadku Cloud Identity Aware Proxy. Zobacz Korzystanie z logowania przez Google w aplikacjach IT.
Dostosowywanie interfejsu
Wygląd widżetu możesz zmienić, wykonując te czynności:
- Zastępowanie stylów za pomocą CSS.
- dekorowanie elementów za pomocą adaptera,
- Tworzenie elementów niestandardowych za pomocą adaptera.
Zastępowanie stylów za pomocą CSS
Widżet zawiera własny arkusz CSS. Aby go zastąpić, użyj selektorów elementów nadrzędnych, aby zwiększyć specyficzność:
#suggestions_anchor .cloudsearch_suggestion_container {
font-size: 14px;
}
Zapoznaj się z informacjami o obsługiwanych klasach CSS.
Dekorowanie elementów za pomocą adaptera
Utwórz i zarejestruj adapter, aby modyfikować elementy przed renderowaniem. W tym przykładzie dodajemy niestandardową klasę CSS:
Zarejestruj adapter podczas inicjalizacji:
Tworzenie elementów niestandardowych za pomocą adaptera
Wdróż createSuggestionElement, createFacetResultElement lub createSearchResultElement, aby tworzyć niestandardowe komponenty interfejsu. W tym przykładzie użyto tagów HTML <template>:
Zarejestruj adapter:
Elementy niestandardowych aspektów muszą być zgodne z tymi regułami:
- Dołącz
cloudsearch_facet_bucket_clickabledo elementów klikalnych. - Umieść każdy zasobnik w
cloudsearch_facet_bucket_container. - Zachowaj kolejność przedziałów z odpowiedzi.
Na przykład ten fragment kodu renderuje aspekty za pomocą linków zamiast pól wyboru.
Dostosowywanie zachowań związanych z wyszukiwaniem
Zastąp ustawienia aplikacji do wyszukiwania, przechwytując żądania za pomocą adaptera.
Wprowadź interceptSearchRequest, aby modyfikować żądania przed ich wykonaniem. Ten przykład ogranicza zapytania do wybranego źródła:
Zarejestruj adapter:
Ten kod HTML służy do wyświetlania pola wyboru, które umożliwia filtrowanie według źródeł:
Poniższy kod nasłuchuje zmiany, ustawia wybór i w razie potrzeby ponownie wykonuje zapytanie.
Możesz też przechwycić odpowiedź wyszukiwarki, implementując
interceptSearchResponse
w adapterze.
Przypinanie wersji
- Wersja interfejsu API: ustaw wartość
cloudsearch.config/apiVersionprzed zainicjowaniem. - Wersja widżetu: użyj
gapi.config.update('cloudsearch.config/clientVersion', 1.1).
Jeśli nie są ustawione, domyślnie przyjmują wartość 1,0.
Aby na przykład przypiąć widżet do wersji 1.1:
Zabezpieczanie interfejsu wyszukiwania
Stosuj sprawdzone metody dotyczące bezpieczeństwa aplikacji internetowych, zwłaszcza aby zapobiegać clickjackingowi.
Włączanie debugowania
Aby włączyć debugowanie, użyj
interceptSearchRequest:
if (!request.requestOptions) {
request.requestOptions = {};
}
request.requestOptions.debugOptions = {enableDebugging: true};
return request;