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