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 หากเป็นสีผสม จะเป็น 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[]
ประเภทตัวกรองหลัก
- ตัวกรองออบเจ็กต์: จำกัดการจับคู่ให้เป็นประเภทที่เฉพาะเจาะจง
- ตัวกรองค่า: จำกัดการจับคู่ตามโอเปอเรเตอร์และค่า
ตัวกรองแบบรวม รวมตัวกรองค่าหลายรายการ
ปรับแต่งผลลัพธ์ด้วยแง่มุม
Facet ช่วยให้ผู้ใช้ปรับแต่งการค้นหาแบบอินเทอร์แอกทีฟได้ เมื่อคุณขอ Facet Cloud Search จะคำนวณค่าที่พบบ่อยที่สุดสำหรับพร็อพเพอร์ตี้เหล่านั้น
รูปแบบทั่วไป 1. การค้นหาที่ระบุพร็อพเพอร์ตี้ของแง่มุม 1. แสดงผลการค้นหาและผลลัพธ์ของ Facet 1. ผู้ใช้เลือกค่าแง่มุม 1. ค้นหาซ้ำโดยใช้ตัวกรองตามตัวเลือก
ผลลัพธ์ของ Facet ที่มีช่องที่อิงตามจำนวนเต็ม
ทําเครื่องหมายพร็อพเพอร์ตี้จํานวนเต็มเป็นพร็อพเพอร์ตี้ที่กรองได้เพื่อปรับแต่งผลลัพธ์ตามช่วง (เช่น
"100-200" หน้า) ตั้งค่า isFacetable เป็น true และกำหนดตัวเลือกการจัดกลุ่มเริ่มต้น
ในสคีมา
จำแนกผลลัพธ์ตามขนาดหรือวันที่ของเอกสาร
itemsize: สำหรับขนาดไฟล์เป็นไบต์createddatetimestamp: สำหรับวันที่สร้างlastmodified: สำหรับวันที่แก้ไข
เพิ่มคำแนะนำ
ใช้ suggest API สำหรับการเติมข้อความอัตโนมัติโดยอิงตามประวัติการค้นหา รายชื่อติดต่อ และเนื้อหาของเอกสาร