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

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

.
การตั้งค่าคำอธิบายค่าเริ่มต้นการเปลี่ยนแปลงการกำหนดค่าที่ควรลอง
repository.traversers = t1, t2, t3, ...สร้าง Traverser เดี่ยวอย่างน้อย 1 รายการ โดย t1, t2, t3, ... คือชื่อที่ไม่ซ้ำกันของแต่ละรายการ Traverser ที่ตั้งชื่อแต่ละรายการจะมีชุดการตั้งค่าของตัวเองซึ่งระบุโดยใช้ชื่อที่ไม่ซ้ำกันของ Traverser เช่น traversers.t1.hostload และ traversers.t2.hostload1 ตัวสำรวจใช้การตั้งค่านี้เพื่อเพิ่มตัวสำรวจเพิ่มเติม
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 จะสั่งให้โปรแกรม Crawl t1 จัดทำดัชนีเฉพาะรายการที่มีสถานะเหล่านั้นตัวตรวจสอบ 1 ตัวจะตรวจสอบสถานะทั้งหมดทดลองให้ Traverser ที่แตกต่างกันสำรวจสถานะที่แตกต่างกัน

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

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

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

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