Widżet wyszukiwania udostępnia konfigurowalny interfejs wyszukiwania dla aplikacji internetowych. Wymaga minimalnej implementacji HTML i JavaScriptu oraz 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 aplikacji internetowej.
Podczas konfigurowania projektu:
- Wybierz typ klienta Przeglądarka.
- Podaj adres URL 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żytkownik zacznie pisać, widżet poprosi go 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
Używaj funkcji Zaloguj się przez Google, aby monitorować stany logowania i nimi zarządzać.
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 utworzyć 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ść segmentów z odpowiedzi.
Na przykład ten fragment kodu renderuje aspekty za pomocą linków zamiast pól wyboru.
Dostosowywanie zachowania wyszukiwania
Zastąp ustawienia aplikacji do wyszukiwania, przechwytując żądania za pomocą adaptera.
Wdróż interceptSearchRequest, aby modyfikować żądania przed ich wykonaniem. Ten przykład ogranicza zapytania do wybranego źródła:
Zarejestruj adapter:
Poniższy kod HTML służy do wyświetlania pola wyboru umożliwiającego 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ź wyszukiwania, 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 związane z bezpieczeństwem aplikacji internetowych, zwłaszcza aby zapobiegać kliknięciom.
Włączanie debugowania
Aby włączyć debugowanie, użyj
interceptSearchRequest:
if (!request.requestOptions) {
request.requestOptions = {};
}
request.requestOptions.debugOptions = {enableDebugging: true};
return request;