Query API มีเมธอดค้นหาและแนะนำสำหรับการสร้างอินเทอร์เฟซการค้นหาหรือฝังผลการค้นหาในแอปพลิเคชัน
สำหรับเว็บแอปพลิเคชันที่มีข้อกำหนดขั้นต่ำ ให้พิจารณาใช้วิดเจ็ตการค้นหา ดูหัวข้อ สร้างอินเทอร์เฟซการค้นหาด้วยวิดเจ็ตการค้นหา
สร้างอินเทอร์เฟซการค้นหา
การสร้างอินเทอร์เฟซการค้นหาขั้นต่ำต้องทำตามขั้นตอนต่อไปนี้
- กำหนดค่าแอปพลิเคชันการค้นหา
- สร้างข้อมูลเข้าสู่ระบบ OAuth สำหรับแอปพลิเคชัน
- ค้นหาดัชนี
- แสดงผลการค้นหา
คุณสามารถเพิ่มประสิทธิภาพอินเทอร์เฟซด้วยฟีเจอร์ต่างๆ เช่น การแบ่งหน้า การจัดเรียง การกรอง ข้อมูลประกอบ และการเติมข้อความอัตโนมัติ
กำหนดค่าแอปพลิเคชันการค้นหา
คุณต้องสร้างแอปพลิเคชันการค้นหา อย่างน้อย 1 รายการสำหรับอินเทอร์เฟซการค้นหาแต่ละรายการ แอปพลิเคชันการค้นหามีพารามิเตอร์เริ่มต้น เช่น แหล่งข้อมูล ลำดับการจัดเรียง ตัวกรอง และข้อมูลประกอบ คุณสามารถลบล้างพารามิเตอร์เหล่านี้ได้โดยใช้ Query API
คุณไม่สามารถเพิ่มจำนวนแหล่งข้อมูลที่ใช้ในการค้นหาให้เกินจำนวนที่กำหนดค่าไว้ในแอปพลิเคชันการค้นหา คุณสามารถจำกัดการค้นหาให้ใช้แหล่งข้อมูลเพียงบางส่วนได้โดยใช้ dataSourceRestrictions
ดูข้อมูลเพิ่มเติมได้ที่ หัวข้อปรับแต่งประสบการณ์การค้นหา
สร้างข้อมูลเข้าสู่ระบบ OAuth สำหรับแอปพลิเคชัน
นอกเหนือจากขั้นตอนใน หัวข้อกำหนดค่าการเข้าถึง Cloud Search API, แล้ว คุณต้องสร้างข้อมูลเข้าสู่ระบบ OAuth สำหรับเว็บแอปพลิเคชันด้วย
ใช้ข้อมูลเข้าสู่ระบบเพื่อขอการให้สิทธิ์ในนามของผู้ใช้ ใช้ขอบเขต https://www.googleapis.com/auth/cloud_search.query
ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือก OAuth ได้ที่ Google Identity Platform
ค้นหาดัชนี
ใช้เมธอดเพื่อค้นหาดัชนีsearch
ทุกคำขอต้องมี query ข้อความและ searchApplicationId
ตัวอย่างนี้จะค้นหาแหล่งข้อมูลภาพยนตร์
{
"query": "titanic",
"requestOptions": {
"searchApplicationId": "searchapplications/<search_app_id>"
}
}
แสดงผลการค้นหา
อินเทอร์เฟซการค้นหาควรแสดง title ของรายการและลิงก์ไปยังรายการต้นฉบับ นอกจากนี้ คุณยังใช้ข้อมูลสรุปและข้อมูลเมตาเพื่อปรับปรุงการแสดงผลได้ด้วย
จัดการผลการค้นหาเพิ่มเติม
Cloud Search จะแสดงผลการค้นหาเพิ่มเติมเมื่อมีผลการค้นหาที่ตรงกันไม่เพียงพอสำหรับคำค้นหา ช่อง
queryInterpretation
จะระบุข้อมูลนี้ หากแสดงเฉพาะผลการค้นหาเพิ่มเติม InterpretationType จะเป็น REPLACE หากแสดงผลการค้นหาหลักและผลการค้นหาเพิ่มเติมรวมกัน `InterpretationType` จะเป็น BLEND
เมื่อแสดงผลการค้นหาเพิ่มเติม ให้พิจารณาแจ้งให้ผู้ใช้ทราบ สำหรับ REPLACE คุณอาจพูดว่า "การค้นหาของคุณไม่ตรงกับผลการค้นหาใดๆ กำลังแสดงผลการค้นหาสำหรับคำค้นหาที่คล้ายกัน"
จัดการผลการค้นหาบุคคล
Cloud Search จะแสดงเอกสารที่เกี่ยวข้องกับข้อมูลบุคคลและข้อมูลพนักงานโดยใช้ฟีเจอร์การค้นหาคน ผลการค้นหาจะอยู่ในช่อง
structuredResults
ดังนี้
{
"results": [...],
"structuredResults": [{
"person": {...}
}]
}
การจับคู่ผู้ใต้บังคับบัญชา
การจับคู่ผู้ใต้บังคับบัญชาช่วยให้ผู้ใช้เห็นผู้ใต้บังคับบัญชาของบุคคล การตอบกลับจะมี assistCardProtoHolder ที่มี cardType เป็น RELATED_PEOPLE_ANSWER_CARD
ปิดการเพิ่มประสิทธิภาพ
ระบบจะเปิดใช้การเพิ่มประสิทธิภาพ เช่น ผลการค้นหาเพิ่มเติม ไว้โดยค่าเริ่มต้น คุณสามารถปิดใช้การเพิ่มประสิทธิภาพได้โดยทำดังนี้
- ระดับแอปพลิเคชันการค้นหา: ตั้งค่า
force_verbatim_modeเป็นtrue - ระดับคำค้นหา: ตั้งค่า
enableVerbatimModeเป็นtrue
ไฮไลต์ข้อมูลสรุป
Cloud Search จะแสดงข้อมูลสรุปสำหรับข้อความหรือ HTML ที่จัดทำดัชนี หากมีคำค้นหา matchRanges จะระบุตำแหน่งของคำเหล่านั้น ใช้ช่วงเหล่านี้เพื่อไฮไลต์ข้อความ
function highlightSnippet(snippet) {
let text = snippet.snippet;
let formattedText = text;
if (snippet.matchRanges) {
let parts = [];
let index = 0;
for (let match of snippet.matchRanges) {
let start = match.start || 0; // Default to 0 if omitted
let end = match.end;
if (index < start) { // Include any leading text before/between ranges
parts.push(text.slice(index, start));
}
parts.push('<span class="highlight">');
parts.push(text.slice(start, end));
parts.push('</span>');
index = end;
}
parts.push(text.slice(index)); // Include any trailing text after last range
formattedText = parts.join('');
}
return formattedText;
}
ข้อมูลสรุปมีลักษณะดังนี้
{
"snippet": "This is an example snippet...",
"matchRanges": [
{
"start": 11,
"end": 18
}
]
}
สตริง HTML ที่ได้จะมีลักษณะดังนี้
This is an <span class="highlight">example</span> snippet...
ข้อมูลเมตาที่แสดงผล
ใช้ช่อง
metadata
สำหรับข้อมูลต่างๆ เช่น createTime, updateTime, และ Structured Data
ใช้ displayOptions
เพื่อแสดง Structured Data
ดึงผลการค้นหาเพิ่มเติม
หากต้องการดึงผลการค้นหาเพิ่มเติม ให้ตั้งค่าช่อง
start
เป็นออฟเซ็ตที่เลือก ปรับขนาดหน้าด้วย pageSize ใช้ resultCount เพื่อแสดงรายการทั้งหมดหรือจำนวนโดยประมาณ
จัดเรียงผลลัพธ์
ใช้
sortOptions
เพื่อระบุลำดับการจัดเรียง
operatorName: พร็อพเพอร์ตี้ที่จะใช้จัดเรียงsortOrder:ASCENDINGหรือDESCENDING
ความเกี่ยวข้องเป็นคีย์การจัดเรียงเริ่มต้นและคีย์การจัดเรียงรอง
เพิ่มตัวกรอง
จำกัดผลการค้นหาด้วย ตัวกรอง ในแอปพลิเคชันการค้นหาหรือคำขอ หากทั้ง 2 อย่างระบุตัวกรองสำหรับแหล่งที่มา ตัวกรองทั้ง 2 อย่างต้องประเมินเป็นจริง
ใช้ตัวกรองใน
dataSourceRestrictions.filterOptions[]
ประเภทตัวกรองหลัก
- ตัวกรองออบเจ็กต์: จำกัดผลการค้นหาให้ตรงกับออบเจ็กต์ประเภทที่เฉพาะเจาะจง
- ตัวกรองค่า: จำกัดผลการค้นหาตามโอเปอเรเตอร์และค่า
ตัวกรองแบบผสม จะรวมตัวกรองค่าหลายรายการเข้าด้วยกัน
ปรับแต่งผลการค้นหาด้วยข้อมูลประกอบ
ข้อมูลประกอบช่วยให้ผู้ใช้ปรับแต่งคำค้นหาแบบโต้ตอบได้ เมื่อคุณขอข้อมูลประกอบ Cloud Search จะคำนวณค่าที่พบบ่อยที่สุดสำหรับพร็อพเพอร์ตี้เหล่านั้น
รูปแบบทั่วไป: 1. คำค้นหาที่ระบุพร็อพเพอร์ตี้ข้อมูลประกอบ 1. แสดงผลการค้นหาและผลการค้นหาข้อมูลประกอบ 1. ผู้ใช้เลือกค่าข้อมูลประกอบ 1. ทำซ้ำคำค้นหาด้วยตัวกรองตามการเลือก
ผลการค้นหาข้อมูลประกอบที่มีช่องที่อิงตามจำนวนเต็ม
ทำเครื่องหมายพร็อพเพอร์ตี้จำนวนเต็มว่าใช้เป็นข้อมูลประกอบได้เพื่อปรับแต่งผลการค้นหาตามช่วง (เช่น "100-200" หน้า) ตั้งค่า isFacetable เป็น true และกำหนดตัวเลือกการจัดกลุ่มเริ่มต้นในสคีมา
ผลการค้นหาข้อมูลประกอบตามขนาดหรือวันที่ของเอกสาร
ใช้ โอเปอเรเตอร์ที่สงวนไว้ดังนี้:
itemsize: สำหรับขนาดไฟล์ในหน่วยไบต์createddatetimestamp: สำหรับวันที่สร้างlastmodified: สำหรับวันที่แก้ไข
เพิ่มคำแนะนำ
ใช้ Suggest API สำหรับการเติมข้อความอัตโนมัติตามประวัติการค้นหา รายชื่อติดต่อ และเนื้อหาเอกสาร