Connector SDK และ Cloud Search API รองรับการสร้างคิวการจัดทำดัชนีของ Cloud Search ใช้คิวเหล่านี้เพื่อดำเนินการต่อไปนี้
- รักษาสถานะต่อเอกสาร (สถานะ แฮช ฯลฯ) เพื่อให้ดัชนีซิงค์อยู่เสมอ
- ดูแลรายการรายการที่จะจัดทำดัชนีตามที่พบระหว่างการข้าม
- จัดลำดับความสำคัญของรายการตามสถานะ
- เก็บรักษาข้อมูลสถานะ เช่น จุดตรวจสอบและโทเค็นการเปลี่ยนแปลง
คิวคือป้ายกำกับที่กำหนดให้กับรายการที่จัดทำดัชนี (เช่น "default")
สถานะและลำดับความสำคัญ
ลำดับความสำคัญของเอกสารขึ้นอยู่กับ
ItemStatus
โค้ด รหัสที่ใช้ได้ตามลำดับความสำคัญ (สูงสุดไปต่ำสุด) มีดังนี้
ERROR: สินค้าพบข้อผิดพลาดแบบอะซิงโครนัสและต้องจัดทำดัชนีอีกครั้งMODIFIED: ระบบเคยจัดทำดัชนีรายการนี้แล้ว แต่มีการเปลี่ยนแปลงใน ที่เก็บNEW_ITEM: ระบบยังไม่ได้จัดทำดัชนีรายการACCEPTED: ระบบได้จัดทำดัชนีรายการนี้ไว้ก่อนหน้านี้แล้วและไม่มีการเปลี่ยนแปลง
สำหรับรายการที่มีสถานะเดียวกัน รายการที่มีลำดับความสำคัญสูงกว่าคือรายการที่อยู่ในคิวนานที่สุด
จัดทำดัชนีรายการใหม่หรือรายการที่มีการเปลี่ยนแปลง
รูปที่ 1 แสดงขั้นตอนการจัดทำดัชนีรายการใหม่หรือรายการที่มีการเปลี่ยนแปลงโดยใช้คิวการจัดทำดัชนี ขั้นตอนเหล่านี้แสดงการเรียก REST API สำหรับ SDK ที่เทียบเท่า โปรดดูการดำเนินการคิว (Connector SDK)
- เครื่องมือเชื่อมต่อเนื้อหาใช้
items.pushเพื่อส่งข้อมูลเมตาและแฮชไปยังคิว- หากเครื่องมือเชื่อมต่อมี Push
typeหรือcontentHashCloud Search จะกำหนดสถานะ - รายการที่ไม่รู้จักจะมีสถานะเป็น
NEW_ITEM - รายการที่มีอยู่ซึ่งมีแฮชที่ตรงกันจะยังคง
ACCEPTED - รายการที่มีอยู่ซึ่งมีแฮชต่างกันจะกลายเป็น
MODIFIED
- หากเครื่องมือเชื่อมต่อมี Push
- เครื่องมือเชื่อมต่อใช้
items.pollเพื่อกำหนดรายการที่จะจัดทำดัชนี Cloud Search จะแสดง รายการตามลำดับความสำคัญ - ตัวเชื่อมต่อจะดึงข้อมูลจากที่เก็บและสร้างคำขอ Index API
- เครื่องมือเชื่อมต่อใช้
items.indexเพื่อจัดทำดัชนีรายการ รายการจะเข้าสู่สถานะACCEPTEDหลังจากประมวลผลสำเร็จ
ลบรายการ
กลยุทธ์การข้ามทั้งหมด ใช้คิว 2 คิวเพื่อจัดทำดัชนีรายการและตรวจหาการลบ รูปที่ 2 แสดงการ ข้ามครั้งที่ 2 ในกลยุทธ์นี้
- ในการข้ามครั้งแรก ตัวเชื่อมต่อจะพุชรายการไปยัง "คิว A" เป็น
NEW_ITEMแต่ละรายการจะได้รับป้ายกำกับ "A" - ตัวเชื่อมต่อจะสำรวจคิว A และจัดทำดัชนีรายการ
- ในการข้ามผ่านแบบเต็มครั้งที่ 2 ตัวเชื่อมต่อจะพุชรายการไปยัง "คิว B"
- รายการที่ไม่รู้จักจะได้รับป้ายกำกับ "B" และสถานะ
NEW_ITEM - รายการที่มีอยู่ซึ่งมีแฮชที่ตรงกันจะเปลี่ยนป้ายกำกับเป็น "B" และยังคงอยู่
ACCEPTED - สินค้าที่มีอยู่ซึ่งมีแฮชแตกต่างกันจะเปลี่ยนป้ายกำกับเป็น "B" และ
กลายเป็น
MODIFIED
- รายการที่ไม่รู้จักจะได้รับป้ายกำกับ "B" และสถานะ
- ตัวเชื่อมต่อจะสำรวจคิว B และจัดทำดัชนีรายการ
- สุดท้าย ตัวเชื่อมต่อจะเรียกใช้
deleteQueueItemsในคิว A ซึ่งจะลบรายการที่จัดทำดัชนีไว้ก่อนหน้านี้ทั้งหมดที่ยังมีป้ายกำกับ "A" - การข้ามต่อๆ ไปจะสลับบทบาทของคิวทั้ง 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