วิดเจ็ตค้นหาจะแสดงอินเทอร์เฟซการค้นหาที่ปรับแต่งได้สำหรับเว็บแอปพลิเคชัน โดยต้องใช้ HTML และ JavaScript เพียงเล็กน้อยในการติดตั้งใช้งาน และรองรับฟีเจอร์ทั่วไป เช่น แง่มุมและการแบ่งหน้า นอกจากนี้ คุณยังปรับแต่งอินเทอร์เฟซด้วย CSS และ JavaScript ได้ด้วย
หากต้องการความยืดหยุ่นมากขึ้น ให้ใช้ Query API ดูการสร้างอินเทอร์เฟซการค้นหาด้วย Query API
สร้างอินเทอร์เฟซการค้นหา
การสร้างอินเทอร์เฟซการค้นหาต้องทำตามขั้นตอนต่อไปนี้
- กำหนดค่าแอปพลิเคชันการค้นหา
- สร้างรหัสไคลเอ็นต์สำหรับแอปพลิเคชัน
- เพิ่มมาร์กอัป HTML สำหรับช่องค้นหาและผลการค้นหา
- โหลดวิดเจ็ตในหน้าเว็บ
- เริ่มต้นวิดเจ็ต
กำหนดค่าแอปพลิเคชันการค้นหา
อินเทอร์เฟซการค้นหาแต่ละรายการต้องมีแอปพลิเคชันการค้นหาที่กำหนดไว้ในคอนโซลผู้ดูแลระบบ แอปพลิเคชันมีการตั้งค่าการค้นหา เช่น แหล่งข้อมูล ข้อมูลประกอบ และพารามิเตอร์คุณภาพการค้นหา
หากต้องการสร้างแอปพลิเคชันการค้นหา โปรดดูสร้างประสบการณ์การค้นหาที่กำหนดเอง
สร้างรหัสไคลเอ็นต์สำหรับแอปพลิเคชัน
นอกเหนือจากขั้นตอนในกำหนดค่าการเข้าถึง Cloud Search API ให้สร้างรหัสไคลเอ็นต์สำหรับเว็บแอปพลิเคชัน
เมื่อกำหนดค่าโปรเจ็กต์ ให้ทำดังนี้
- เลือกประเภทไคลเอ็นต์เป็นเว็บเบราว์เซอร์
- ระบุ URI ต้นทางของ แอป
- จดรหัสไคลเอ็นต์ วิดเจ็ตไม่จำเป็นต้องใช้รหัสลับไคลเอ็นต์
ดูข้อมูลเพิ่มเติมได้ที่ OAuth 2.0 สำหรับเว็บแอปพลิเคชันฝั่งไคลเอ็นต์
เพิ่มมาร์กอัป HTML
วิดเจ็ตต้องมีองค์ประกอบ HTML ต่อไปนี้
- องค์ประกอบ
inputสำหรับช่องค้นหา - องค์ประกอบสำหรับยึดกล่องโต้ตอบคำแนะนำ
- องค์ประกอบสำหรับผลการค้นหา
- (ไม่บังคับ) องค์ประกอบสำหรับการควบคุม Facet
ข้อมูลโค้ดนี้แสดงองค์ประกอบที่ระบุโดยแอตทริบิวต์ id
โหลดวิดเจ็ต
รวมตัวโหลดโดยใช้แท็ก <script> ดังนี้
ระบุonloadการเรียกกลับ เมื่อตัวโหลดพร้อมแล้ว ให้เรียกใช้
gapi.load()
เพื่อโหลดไคลเอ็นต์ API, Google Sign-In และโมดูล Cloud Search
เริ่มต้นวิดเจ็ต
เริ่มต้นไลบรารีของไคลเอ็นต์โดยใช้ gapi.client.init() หรือ
gapi.auth2.init() กับ Client ID และขอบเขต https://www.googleapis.com/auth/cloud_search.query ใช้ Builder
classes เพื่อกำหนดค่าและเชื่อมโยงวิดเจ็ต
ตัวอย่างการเริ่มต้น
ตัวแปรการกำหนดค่า
ปรับแต่งประสบการณ์การลงชื่อเข้าใช้
วิดเจ็ตจะแจ้งให้ผู้ใช้ลงชื่อเข้าใช้เมื่อเริ่มพิมพ์ คุณสามารถใช้การลงชื่อเข้าใช้ด้วย Google สำหรับเว็บไซต์เพื่อรับประสบการณ์การใช้งานที่ปรับแต่งมาโดยเฉพาะ
ให้สิทธิ์ผู้ใช้โดยตรง
ใช้ฟีเจอร์ลงชื่อเข้าใช้ด้วย Google เพื่อตรวจสอบและจัดการสถานะการลงชื่อเข้าใช้
ตัวอย่างนี้ใช้ GoogleAuth.signIn() เมื่อคลิกปุ่ม
ลงชื่อเข้าใช้ผู้ใช้โดยอัตโนมัติ
ให้สิทธิ์ล่วงหน้าแก่แอปพลิเคชันสำหรับผู้ใช้ในองค์กรเพื่อเพิ่มประสิทธิภาพ การลงชื่อเข้าใช้ ซึ่งจะเป็นประโยชน์กับ Cloud Identity Aware Proxy ด้วย ดูใช้ Google Sign-In กับ IT Apps
ปรับแต่งอินเทอร์เฟซ
คุณเปลี่ยนลักษณะที่ปรากฏของวิดเจ็ตได้โดยทำดังนี้
- การลบล้างรูปแบบด้วย CSS
- การตกแต่งองค์ประกอบด้วยอะแดปเตอร์
- การสร้างองค์ประกอบที่กำหนดเองด้วยอแดปเตอร์
ลบล้างรูปแบบด้วย CSS
วิดเจ็ตมี CSS ของตัวเอง หากต้องการลบล้าง ให้ใช้ตัวเลือกบรรพบุรุษเพื่อ เพิ่มความเฉพาะเจาะจง
#suggestions_anchor .cloudsearch_suggestion_container {
font-size: 14px;
}
ดูข้อมูลอ้างอิงคลาส CSS ที่รองรับ
ตกแต่งองค์ประกอบด้วยอะแดปเตอร์
สร้างและลงทะเบียนอแดปเตอร์เพื่อแก้ไของค์ประกอบก่อนการแสดงผล ตัวอย่างนี้ เพิ่มคลาส CSS ที่กำหนดเอง
ลงทะเบียนอะแดปเตอร์ระหว่างการเริ่มต้น
สร้างองค์ประกอบที่กำหนดเองด้วยอแดปเตอร์
ใช้ createSuggestionElement, createFacetResultElement หรือ createSearchResultElement เพื่อสร้างคอมโพเนนต์ UI ที่กำหนดเอง ตัวอย่างนี้ใช้แท็ก <template> HTML ดังนี้
ลงทะเบียนอะแดปเตอร์
องค์ประกอบแง่มุมที่กำหนดเองต้องเป็นไปตามกฎต่อไปนี้
- แนบ
cloudsearch_facet_bucket_clickableกับองค์ประกอบที่คลิกได้ - ห่อหุ้มแต่ละ Bucket ด้วย
cloudsearch_facet_bucket_container - รักษลําดับของที่เก็บข้อมูลจากคําตอบ
ตัวอย่างเช่น ข้อมูลโค้ดต่อไปนี้จะแสดงแง่มุมโดยใช้ลิงก์แทนช่องทําเครื่องหมาย
ปรับแต่งลักษณะการทำงานของการค้นหา
ลบล้างการตั้งค่าแอปพลิเคชันการค้นหาโดยการสกัดกั้นคำขอด้วยอแดปเตอร์
ใช้ interceptSearchRequest เพื่อแก้ไขคำขอก่อนดำเนินการ ตัวอย่างนี้
จำกัดการค้นหาไว้ที่แหล่งข้อมูลที่เลือก
ลงทะเบียนอะแดปเตอร์
HTML ต่อไปนี้ใช้เพื่อแสดงกล่องเลือกสำหรับการกรองตาม แหล่งที่มา
โค้ดต่อไปนี้จะรอการเปลี่ยนแปลง ตั้งค่าการเลือก และ เรียกใช้คำค้นหาอีกครั้งหากจำเป็น
นอกจากนี้ คุณยังสกัดกั้นการตอบกลับการค้นหาได้โดยการใช้
interceptSearchResponse
ในอแดปเตอร์
ปักหมุดเวอร์ชัน
- เวอร์ชัน API: ตั้งค่า
cloudsearch.config/apiVersionก่อนเริ่มต้น - เวอร์ชันวิดเจ็ต: ใช้
gapi.config.update('cloudsearch.config/clientVersion', 1.1)
ทั้ง 2 ค่าจะมีค่าเริ่มต้นเป็น 1.0 หากไม่ได้ตั้งค่าไว้
เช่น หากต้องการปักหมุดวิดเจ็ตเป็นเวอร์ชัน 1.1 ให้ทำดังนี้
รักษาความปลอดภัยของอินเทอร์เฟซการค้นหา
ปฏิบัติตามแนวทางปฏิบัติแนะนำด้านความปลอดภัยสำหรับเว็บแอปพลิเคชัน โดยเฉพาะเพื่อป้องกันการคลิกแจ็กกิ้ง
เปิดใช้การแก้ไขข้อบกพร่อง
วิธีเปิดใช้การแก้ไขข้อบกพร่อง
interceptSearchRequest
if (!request.requestOptions) {
request.requestOptions = {};
}
request.requestOptions.debugOptions = {enableDebugging: true};
return request;