Widget penelusuran memberikan antarmuka penelusuran yang dapat disesuaikan untuk aplikasi web. Widget ini memerlukan HTML dan JavaScript minimal untuk diterapkan dan mendukung fitur umum seperti faset dan penomoran halaman. Anda juga dapat menyesuaikan antarmuka dengan CSS dan JavaScript.
Jika Anda membutuhkan lebih banyak fleksibilitas, gunakan Query API. Lihat Membuat antarmuka penelusuran dengan Query API.
Membuat antarmuka penelusuran
Membuat antarmuka penelusuran memerlukan langkah-langkah berikut:
- Mengonfigurasi aplikasi penelusuran.
- Buat ID klien untuk aplikasi.
- Tambahkan markup HTML untuk kotak dan hasil penelusuran.
- Muat widget di halaman.
- Lakukan inisialisasi widget.
Mengonfigurasi aplikasi penelusuran
Setiap antarmuka penelusuran memerlukan aplikasi penelusuran yang ditentukan di konsol Admin. Aplikasi ini menyediakan setelan kueri, seperti sumber data, faset, dan parameter kualitas penelusuran.
Untuk membuat aplikasi penelusuran, lihat Membuat pengalaman penelusuran khusus.
Membuat ID klien untuk aplikasi
Selain langkah-langkah dalam Mengonfigurasi akses ke Cloud Search API, buat ID klien untuk aplikasi web Anda.
Saat mengonfigurasi project:
- Pilih jenis klien Browser web.
- Berikan URI asal aplikasi Anda.
- Catat ID klien. Widget tidak memerlukan rahasia klien.
Untuk mengetahui informasi selengkapnya, lihat OAuth 2.0 untuk Aplikasi Web Sisi Klien.
Menambahkan markup HTML
Widget memerlukan elemen HTML berikut:
- Elemen
inputuntuk kotak penelusuran. - Elemen untuk mengaitkan dialog saran.
- Elemen untuk hasil penelusuran.
- (Opsional) Elemen untuk kontrol faset.
Cuplikan ini menampilkan elemen yang diidentifikasi oleh atribut id:
Memuat widget
Sertakan pemuat menggunakan tag <script>:
Berikan callback onload. Saat pemuat siap, panggil
gapi.load()
untuk memuat klien API, Login dengan Google, dan modul Cloud Search.
Menginisialisasi widget
Lakukan inisialisasi library klien menggunakan gapi.client.init() atau
gapi.auth2.init() dengan ID klien dan cakupan
https://www.googleapis.com/auth/cloud_search.query. Gunakan class
builder untuk mengonfigurasi dan mengikat widget.
Contoh inisialisasi:
Variabel konfigurasi:
Menyesuaikan pengalaman login
Widget akan meminta pengguna untuk login saat mereka mulai mengetik. Anda dapat menggunakan Login dengan Google untuk Situs untuk mendapatkan pengalaman yang disesuaikan.
Mengotorisasi pengguna secara langsung
Gunakan Login dengan Google untuk memantau dan mengelola status login.
Contoh ini menggunakan GoogleAuth.signIn() saat tombol diklik:
Membuat pengguna login secara otomatis
Otorisasi aplikasi terlebih dahulu untuk pengguna di organisasi Anda guna menyederhanakan login. Fitur ini juga berguna dengan Cloud Identity Aware Proxy. Lihat Menggunakan Login dengan Google dengan Aplikasi IT.
Menyesuaikan antarmuka
Anda dapat mengubah tampilan widget dengan:
- Mengganti gaya dengan CSS.
- Mendekorasi elemen dengan adaptor.
- Membuat elemen kustom dengan adaptor.
Mengganti gaya dengan CSS
Widget ini menyertakan CSS-nya sendiri. Untuk menggantinya, gunakan pemilih ancestor untuk meningkatkan kekhususan:
#suggestions_anchor .cloudsearch_suggestion_container {
font-size: 14px;
}
Lihat referensi Class CSS yang didukung.
Mendekorasi elemen dengan adaptor
Buat dan daftarkan adaptor untuk mengubah elemen sebelum merender. Contoh ini menambahkan class CSS kustom:
Daftarkan adaptor selama inisialisasi:
Membuat elemen kustom dengan adaptor
Implementasikan createSuggestionElement, createFacetResultElement, atau
createSearchResultElement untuk membuat komponen UI kustom. Contoh ini menggunakan tag HTML <template>:
Daftarkan adaptor:
Elemen facet kustom harus mengikuti aturan berikut:
- Lampirkan
cloudsearch_facet_bucket_clickableke elemen yang dapat diklik. - Bungkus setiap bucket dalam
cloudsearch_facet_bucket_container. - Pertahankan urutan bucket dari respons.
Misalnya, cuplikan berikut merender faset menggunakan link, bukan kotak centang.
Menyesuaikan perilaku penelusuran
Ganti setelan aplikasi penelusuran dengan menghalangi permintaan menggunakan adaptor.
Terapkan interceptSearchRequest untuk mengubah permintaan sebelum dieksekusi. Contoh
ini membatasi kueri ke sumber yang dipilih:
Daftarkan adaptor:
HTML berikut digunakan untuk menampilkan kotak centang guna memfilter berdasarkan sumber:
Kode berikut mendeteksi perubahan, menetapkan pilihan, dan mengeksekusi ulang kueri jika diperlukan.
Anda juga dapat menghalangi respons penelusuran dengan menerapkan
interceptSearchResponse
di adaptor.
Menyematkan versi
- API version: Tetapkan
cloudsearch.config/apiVersionsebelum melakukan inisialisasi. - Versi widget: Gunakan
gapi.config.update('cloudsearch.config/clientVersion', 1.1).
Keduanya ditetapkan secara default ke 1.0 jika tidak ditetapkan.
Misalnya, untuk menyematkan widget ke versi 1.1:
Mengamankan antarmuka penelusuran
Ikuti praktik terbaik keamanan untuk aplikasi web, terutama untuk mencegah clickjacking.
Mengaktifkan proses debug
Gunakan
interceptSearchRequest
untuk mengaktifkan proses debug:
if (!request.requestOptions) {
request.requestOptions = {};
}
request.requestOptions.debugOptions = {enableDebugging: true};
return request;