การตั้งค่าเครื่องมือเชื่อมต่อ

Google Cloud Search SDK มีพารามิเตอร์การกําหนดค่าหลายรายการที่ Google ให้มา ซึ่งเครื่องมือเชื่อมต่อทั้งหมดใช้ การทราบวิธีปรับการตั้งค่าเหล่านี้จะช่วยเพิ่มประสิทธิภาพการจัดทําดัชนีข้อมูลได้อย่างมาก คู่มือนี้จะแสดงรายการปัญหาหลายอย่างที่อาจเกิดขึ้นระหว่างการจัดทําดัชนีและการตั้งค่าที่ใช้เพื่อแก้ไขปัญหา

อัตราการส่งข้อมูลการจัดทําดัชนีต่ำสําหรับ FullTraversalConnector

ตารางต่อไปนี้แสดงการตั้งค่าการกําหนดค่าเพื่อปรับปรุงอัตราการรับส่งข้อมูลสําหรับ FullTraversalConnector

การตั้งค่า คำอธิบาย ค่าเริ่มต้น การเปลี่ยนแปลงการกําหนดค่าที่ควรลอง
traverse.partitionSize จํานวน ApiOperation() ที่จะประมวลผลเป็นกลุ่มๆ ก่อนดึงข้อมูล APIOperation() เพิ่มเติม SDK จะรอให้ระบบประมวลผลพาร์ติชันปัจจุบันก่อนที่จะดึงข้อมูลรายการเพิ่มเติม การตั้งค่านี้ขึ้นอยู่กับปริมาณหน่วยความจำที่มีอยู่ พาร์ติชันขนาดเล็ก เช่น 50 หรือ 100 ต้องใช้หน่วยความจําน้อยลง แต่ต้องรอนานขึ้นในนามของ SDK 50 หากมีหน่วยความจําเหลืออยู่มาก ให้ลองเพิ่ม partitionSize เป็น 1, 000 ขึ้นไป
batch.batchSize จำนวนคำขอที่รวมกันเป็นกลุ่ม เมื่อสิ้นสุดการแบ่งพาร์ติชัน SDK จะรอให้ระบบประมวลผลคําขอแบบเป็นกลุ่มทั้งหมดจากพาร์ติชัน สำหรับการอัปโหลดกลุ่มใหญ่ คุณจะต้องรอนานขึ้น 10 ลองลดขนาดกลุ่ม
batch.maxActiveBatches จำนวนการเรียกใช้กลุ่มพร้อมกันที่อนุญาต 20 หากลด batchSize คุณควรเพิ่ม maxActiveBatches ตามสูตรนี้

maxActiveBatches = (partitionSize / batchSize) + 50. เช่น หาก partititionSize คือ 1, 000 และ batchSize คือ 5 maxActiveBatches ควรเท่ากับ 250 ส่วน 50 รายการที่เหลือเป็นบัฟเฟอร์สําหรับคําขอลองอีกครั้ง การเพิ่มนี้ช่วยให้เครื่องมือเชื่อมต่อสามารถจัดกลุ่มคําขอทั้งหมดโดยไม่บล็อก
traverse.threadPoolSize จำนวนเธรดที่ตัวเชื่อมต่อสร้างขึ้นเพื่อให้ประมวลผลแบบขนานได้ ตัวดำเนินการวนซ้ำรายการเดียวจะดึงข้อมูลการดำเนินการ (โดยทั่วไปคือออบเจ็กต์ RepositoryDoc) ตามลำดับ แต่การเรียก API จะดำเนินการแบบขนานโดยใช้จำนวนเธรด threadPoolSize โดยแต่ละชุดข้อความจะประมวลผลทีละรายการ ค่าเริ่มต้น 50 จะประมวลผลรายการพร้อมกันได้สูงสุด 50 รายการเท่านั้น และจะใช้เวลาประมาณ 4 วินาทีในการประมวลผลรายการแต่ละรายการ (รวมถึงคําขอจัดทําดัชนี) 50 ลองเพิ่ม threadPoolSize เป็นจํานวนเงินที่คูณด้วย 10

สุดท้าย ให้ลองใช้เมธอด setRequestMode() เพื่อเปลี่ยนโหมดคำขอ API (ASYNCHRONOUS หรือ SYNCHRONOUS)

ดูข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์ไฟล์การกําหนดค่าได้ที่พารามิเตอร์การกําหนดค่าที่ Google มีให้

อัตราการส่งผ่านข้อมูลการจัดทําดัชนีต่ำสําหรับ ListTraversalConnector

โดยค่าเริ่มต้น เครื่องมือเชื่อมต่อที่ใช้ ListTraversalConnnector จะใช้ตัวสแกนรายการรายการเดียวเพื่อจัดทำดัชนีรายการ หากต้องการเพิ่มปริมาณงานการจัดทําดัชนี คุณสามารถสร้างตัวสแกนหลายรายการโดยแต่ละรายการมีการกําหนดค่าของตนเองซึ่งมุ่งเน้นที่สถานะรายการที่เฉพาะเจาะจง (NEW_ITEM, MODIFIED และอื่นๆ) ตารางต่อไปนี้แสดงการตั้งค่าการกําหนดค่าเพื่อปรับปรุงอัตราการรับส่งข้อมูล

การตั้งค่าคำอธิบายค่าเริ่มต้นการเปลี่ยนแปลงการกําหนดค่าที่ควรลอง
repository.traversers = t1, t2, t3, ...สร้างตัวสแกนแต่ละรายการอย่างน้อย 1 รายการ โดยที่ t1, t2, t3, ... คือชื่อที่ไม่ซ้ำกันของแต่ละรายการ เครื่องมือสแกนที่มีชื่อแต่ละรายการจะมีชุดการตั้งค่าของตัวเอง ซึ่งระบุโดยใช้ชื่อที่ไม่ซ้ำกันของเครื่องมือสแกน เช่น traversers.t1.hostload และ traversers.t2.hostloadอุปกรณ์ลากเลื่อน 1 ตัวใช้การตั้งค่านี้เพื่อเพิ่มตัวสแกนเพิ่มเติม
traversers.t1.hostload = nระบุจํานวนชุดข้อความ n ที่จะใช้ในการจัดทำดัชนีรายการพร้อมกัน5ลองปรับแต่ง n โดยอิงตามปริมาณการโหลดที่คุณต้องการใส่ลงในที่เก็บ เริ่มต้นด้วยค่า 10 ขึ้นไป
schedule.pollQueueIntervalSecs = sระบุจำนวนวินาที s ที่จะรอก่อนที่จะทำการสำรวจอีกครั้ง ตัวเชื่อมต่อเนื้อหาจะทำการสำรวจรายการต่อไปตราบใดที่ API แสดงรายการในการตอบกลับการสำรวจ เมื่อการตอบกลับแบบสำรวจว่างเปล่า ตัวเชื่อมต่อจะรอ s วินาทีแล้วลองอีกครั้ง การตั้งค่านี้ใช้โดย ListingConnector เท่านั้น10ลองลดเป็น 1
traverser.t1.pollRequest.statuses = status1, status2, …ระบุสถานะ status1, status2, ของรายการที่จะจัดทำดัชนี เช่น การตั้งค่า status1 เป็น NEW_ITEM และ status2 เป็น MODIFIED จะสั่งให้ตัวสแกน t1 จัดทําดัชนีเฉพาะรายการที่มีสถานะเหล่านั้นโปรแกรมตรวจสอบสถานะทั้งหมด 1 รายการทดสอบให้มีการสุ่มตัวอย่างสถานะต่างๆ โดยใช้เครื่องมือค้นหาเส้นทางที่แตกต่างกัน

ดูข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์ไฟล์การกําหนดค่าได้ที่พารามิเตอร์การกําหนดค่าที่ Google มีให้

SDK หมดเวลาหรือขัดจังหวะขณะอัปโหลดไฟล์ขนาดใหญ่

หากคุณพบปัญหา SDK หมดเวลาหรือขัดจังหวะขณะอัปโหลดไฟล์ขนาดใหญ่ ให้ระบุระยะหมดเวลาที่นานขึ้นโดยใช้ traverser.timeout=s (โดยที่ s = จำนวนวินาที) ค่านี้ระบุระยะเวลาที่ด้ายงานต้องประมวลผลรายการ ระยะหมดเวลาเริ่มต้นใน SDK คือ 60 วินาทีสำหรับชุดข้อความ Traversing นอกจากนี้ หากคุณพบว่าคําขอ API แต่ละรายการหมดเวลา ให้ใช้วิธีการต่อไปนี้เพื่อเพิ่มค่าระยะหมดเวลาของคําขอ

พารามิเตอร์ระยะหมดเวลาของคำขอ คำอธิบาย ค่าเริ่มต้น
indexingService.connectTimeoutSeconds ระยะหมดเวลาของการเชื่อมต่อสําหรับคําขอ Indexing API 120 วินาที
indexingService.readTimeoutSeconds หมดเวลาในการอ่านคําขอ Indexing API 120 วินาที