สร้างอินเทอร์เฟซการค้นหาด้วย Query API

Query API มีเมธอดค้นหาและแนะนำสำหรับการสร้างอินเทอร์เฟซการค้นหาหรือฝังผลการค้นหาในแอปพลิเคชัน

สำหรับเว็บแอปพลิเคชันที่มีข้อกำหนดขั้นต่ำ ให้พิจารณาใช้วิดเจ็ตการค้นหา ดูหัวข้อ สร้างอินเทอร์เฟซการค้นหาด้วยวิดเจ็ตการค้นหา

สร้างอินเทอร์เฟซการค้นหา

การสร้างอินเทอร์เฟซการค้นหาขั้นต่ำต้องทำตามขั้นตอนต่อไปนี้

  1. กำหนดค่าแอปพลิเคชันการค้นหา
  2. สร้างข้อมูลเข้าสู่ระบบ OAuth สำหรับแอปพลิเคชัน
  3. ค้นหาดัชนี
  4. แสดงผลการค้นหา

คุณสามารถเพิ่มประสิทธิภาพอินเทอร์เฟซด้วยฟีเจอร์ต่างๆ เช่น การแบ่งหน้า การจัดเรียง การกรอง ข้อมูลประกอบ และการเติมข้อความอัตโนมัติ

กำหนดค่าแอปพลิเคชันการค้นหา

คุณต้องสร้างแอปพลิเคชันการค้นหา อย่างน้อย 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 สำหรับการเติมข้อความอัตโนมัติตามประวัติการค้นหา รายชื่อติดต่อ และเนื้อหาเอกสาร