คิวการจัดทำดัชนีของ Google Cloud Search

Connector SDK และ Cloud Search API รองรับการสร้างคิวการจัดทำดัชนีของ Cloud Search ใช้คิวเหล่านี้เพื่อดำเนินการต่อไปนี้

  • รักษาสถานะต่อเอกสาร (สถานะ แฮช ฯลฯ) เพื่อให้ดัชนีซิงค์อยู่เสมอ
  • ดูแลรายการรายการที่จะจัดทำดัชนีตามที่พบระหว่างการข้าม
  • จัดลำดับความสำคัญของรายการตามสถานะ
  • เก็บรักษาข้อมูลสถานะ เช่น จุดตรวจสอบและโทเค็นการเปลี่ยนแปลง

คิวคือป้ายกำกับที่กำหนดให้กับรายการที่จัดทำดัชนี (เช่น "default")

สถานะและลำดับความสำคัญ

ลำดับความสำคัญของเอกสารขึ้นอยู่กับ ItemStatus โค้ด รหัสที่ใช้ได้ตามลำดับความสำคัญ (สูงสุดไปต่ำสุด) มีดังนี้

  • ERROR: สินค้าพบข้อผิดพลาดแบบอะซิงโครนัสและต้องจัดทำดัชนีอีกครั้ง
  • MODIFIED: ระบบเคยจัดทำดัชนีรายการนี้แล้ว แต่มีการเปลี่ยนแปลงใน ที่เก็บ
  • NEW_ITEM: ระบบยังไม่ได้จัดทำดัชนีรายการ
  • ACCEPTED: ระบบได้จัดทำดัชนีรายการนี้ไว้ก่อนหน้านี้แล้วและไม่มีการเปลี่ยนแปลง

สำหรับรายการที่มีสถานะเดียวกัน รายการที่มีลำดับความสำคัญสูงกว่าคือรายการที่อยู่ในคิวนานที่สุด

จัดทำดัชนีรายการใหม่หรือรายการที่มีการเปลี่ยนแปลง

รูปที่ 1 แสดงขั้นตอนการจัดทำดัชนีรายการใหม่หรือรายการที่มีการเปลี่ยนแปลงโดยใช้คิวการจัดทำดัชนี ขั้นตอนเหล่านี้แสดงการเรียก REST API สำหรับ SDK ที่เทียบเท่า โปรดดูการดำเนินการคิว (Connector SDK)

ภาพรวมของการจัดทำดัชนี Cloud Search
รูปที่ 1 ขั้นตอนการจัดทำดัชนีเพื่อเพิ่มหรืออัปเดต รายการ
  1. เครื่องมือเชื่อมต่อเนื้อหาใช้ items.push เพื่อส่งข้อมูลเมตาและแฮชไปยังคิว
    • หากเครื่องมือเชื่อมต่อมี Push type หรือ contentHash Cloud Search จะกำหนดสถานะ
    • รายการที่ไม่รู้จักจะมีสถานะเป็น NEW_ITEM
    • รายการที่มีอยู่ซึ่งมีแฮชที่ตรงกันจะยังคงACCEPTED
    • รายการที่มีอยู่ซึ่งมีแฮชต่างกันจะกลายเป็น MODIFIED
  2. เครื่องมือเชื่อมต่อใช้ items.poll เพื่อกำหนดรายการที่จะจัดทำดัชนี Cloud Search จะแสดง รายการตามลำดับความสำคัญ
  3. ตัวเชื่อมต่อจะดึงข้อมูลจากที่เก็บและสร้างคำขอ Index API
  4. เครื่องมือเชื่อมต่อใช้ items.index เพื่อจัดทำดัชนีรายการ รายการจะเข้าสู่สถานะ ACCEPTED หลังจากประมวลผลสำเร็จ

ลบรายการ

กลยุทธ์การข้ามทั้งหมด ใช้คิว 2 คิวเพื่อจัดทำดัชนีรายการและตรวจหาการลบ รูปที่ 2 แสดงการ ข้ามครั้งที่ 2 ในกลยุทธ์นี้

ภาพรวมของการจัดทำดัชนี Cloud Search
รูปที่ 2 การลบรายการ
  1. ในการข้ามครั้งแรก ตัวเชื่อมต่อจะพุชรายการไปยัง "คิว A" เป็น NEW_ITEM แต่ละรายการจะได้รับป้ายกำกับ "A"
  2. ตัวเชื่อมต่อจะสำรวจคิว A และจัดทำดัชนีรายการ
  3. ในการข้ามผ่านแบบเต็มครั้งที่ 2 ตัวเชื่อมต่อจะพุชรายการไปยัง "คิว B"
    • รายการที่ไม่รู้จักจะได้รับป้ายกำกับ "B" และสถานะ NEW_ITEM
    • รายการที่มีอยู่ซึ่งมีแฮชที่ตรงกันจะเปลี่ยนป้ายกำกับเป็น "B" และยังคงอยู่ ACCEPTED
    • สินค้าที่มีอยู่ซึ่งมีแฮชแตกต่างกันจะเปลี่ยนป้ายกำกับเป็น "B" และ กลายเป็น MODIFIED
  4. ตัวเชื่อมต่อจะสำรวจคิว B และจัดทำดัชนีรายการ
  5. สุดท้าย ตัวเชื่อมต่อจะเรียกใช้ deleteQueueItems ในคิว A ซึ่งจะลบรายการที่จัดทำดัชนีไว้ก่อนหน้านี้ทั้งหมดที่ยังมีป้ายกำกับ "A"
  6. การข้ามต่อๆ ไปจะสลับบทบาทของคิวทั้ง 2

การดำเนินการคิว (Connector SDK)

ใช้ตัวสร้าง pushItems เพื่อส่งรายการ SDK จะดึงข้อมูลรายการจากคิวตามลำดับความสำคัญโดยอัตโนมัติโดยใช้วิธีการ Repository ของคลาส getDoc

การดำเนินการคิว (REST API)

  • หากต้องการพุช ให้ใช้ Items.push
  • หากต้องการทำโพล ให้ใช้ Items.poll

นอกจากนี้ คุณยังใช้ Items.index เพื่อพุชรายการในระหว่างการจัดทำดัชนีได้ด้วย รายการเหล่านี้จะได้รับสถานะACCEPTEDโดยอัตโนมัติ

Items.push

วิธีนี้จะเพิ่มรหัสลงในคิว โดย type จะเป็นตัวกำหนดผลลัพธ์ การพุชรหัสใหม่จะเพิ่มรายการที่มีสถานะเป็น NEW_ITEM เพย์โหลดที่ไม่บังคับจะแสดงขึ้นระหว่างการสำรวจ

รายการที่สำรวจจะสงวนไว้และเรียกคืนโดยการเรียกใช้การสำรวจอื่นๆ ไม่ได้ การใช้ Items.push โดยตั้งค่า type เป็น NOT_MODIFIED, REPOSITORY_ERROR หรือ REQUEUE จะยกเลิกการจองรายการ

Items.push with hashes

ระบุข้อมูลเมตาหรือแฮชเนื้อหาในคำขอพุช Cloud Search จะเปรียบเทียบค่าเหล่านี้กับค่าที่จัดเก็บไว้ หากไม่ตรงกัน รายการจะกลายเป็น MODIFIED รหัสที่ไม่ตรงกันซึ่งไม่มีอยู่จะกลายเป็น NEW_ITEM

Items.poll

เมธอดนี้จะดึงข้อมูลรายการที่มีลำดับความสำคัญสูง รายการที่แสดงแต่ละรายการจะได้รับการสงวนไว้ จนกว่าจะหมดเวลา มีการจัดทำดัชนีอีกครั้ง หรือมีการยกเลิกการสงวนโดยใช้ Items.push