เครื่องมือเชื่อมต่อเนื้อหา คือโปรแกรมซอฟต์แวร์ที่ใช้ในการส่งผ่านข้อมูลใน ในที่เก็บขององค์กรและป้อนข้อมูลแหล่งข้อมูล Google มีบริการต่อไปนี้ ตัวเลือกสำหรับพัฒนาเครื่องมือเชื่อมต่อเนื้อหา
Content Connector SDK นี่เป็นตัวเลือกที่ดีหากคุณกำลังเขียนโปรแกรม ใน Java Content Connector SDK คือ Wrapper API ของ REST ช่วยให้คุณสร้างเครื่องมือเชื่อมต่อได้อย่างรวดเร็ว วิธีสร้างเนื้อหา เครื่องมือเชื่อมต่อที่ใช้ SDK, สร้างเครื่องมือเชื่อมต่อเนื้อหาโดยใช้ SDK เครื่องมือเชื่อมต่อเนื้อหา
REST API หรือไลบรารี API ระดับต่ำ ใช้ตัวเลือกเหล่านี้หากคุณยังไม่ การเขียนโปรแกรมใน Java หรือหากโค้ดเบสของคุณรองรับ REST API หรือไลบรารี หากต้องการสร้างเครื่องมือเชื่อมต่อเนื้อหาโดยใช้ REST API โปรดดู ถึง สร้างเครื่องมือเชื่อมต่อเนื้อหาโดยใช้ REST API
เครื่องมือเชื่อมต่อเนื้อหาทั่วไปจะทำงานต่อไปนี้
- อ่านและประมวลผลพารามิเตอร์การกำหนดค่า
- ดึงข้อมูลที่จัดทำดัชนีได้บางส่วนซึ่งมีชื่อว่า "items" จากบุคคลที่สาม ที่เก็บเนื้อหาถาวร
- รวม ACL, ข้อมูลเมตา และข้อมูลเนื้อหาเป็นรายการที่สามารถจัดทำดัชนีได้
- จัดทำดัชนีรายการไปยังแหล่งข้อมูลของ Cloud Search
- (ไม่บังคับ) ฟังเพื่อเปลี่ยนการแจ้งเตือนจากเนื้อหาของบุคคลที่สาม ที่เก็บได้ ระบบจะแปลงการแจ้งเตือนการเปลี่ยนแปลงเป็นคำขอการจัดทำดัชนีเพื่อเก็บเอาไว้ ซิงค์แหล่งข้อมูลของ Cloud Search กับที่เก็บของบุคคลที่สาม เครื่องมือเชื่อมต่อจะทำงานนี้เมื่อที่เก็บรองรับการตรวจหาการเปลี่ยนแปลงเท่านั้น
สร้างเครื่องมือเชื่อมต่อเนื้อหาโดยใช้ Content Connector SDK
ส่วนต่อไปนี้จะอธิบายวิธีสร้างเครื่องมือเชื่อมต่อเนื้อหาโดยใช้ SDK เครื่องมือเชื่อมต่อเนื้อหา
ตั้งค่าทรัพยากร Dependency
คุณต้องรวมทรัพยากร Dependency บางอย่างในไฟล์บิลด์เพื่อใช้ SDK คลิก บนแท็บด้านล่างเพื่อดูทรัพยากร Dependency สำหรับสภาพแวดล้อมของบิลด์
Maven
<dependency>
<groupId>com.google.enterprise.cloudsearch</groupId>
<artifactId>google-cloudsearch-indexing-connector-sdk</artifactId>
<version>v1-0.0.3</version>
</dependency>
Gradle
compile group: 'com.google.enterprise.cloudsearch',
name: 'google-cloudsearch-indexing-connector-sdk',
version: 'v1-0.0.3'
สร้างการกำหนดค่าเครื่องมือเชื่อมต่อ
เครื่องมือเชื่อมต่อทั้งหมดจะมีไฟล์การกำหนดค่าที่ประกอบด้วยพารามิเตอร์ที่เครื่องมือเชื่อมต่อ
เช่น รหัสสำหรับที่เก็บ โดยพารามิเตอร์จะกำหนดเป็น
คีย์-ค่าคู่กัน เช่น
api.sourceId=1234567890abcdef
Google Cloud Search SDK มีการกำหนดค่าหลายรายการที่ Google มีให้ พารามิเตอร์ที่เครื่องมือเชื่อมต่อทั้งหมดใช้ คุณต้องประกาศสิ่งต่อไปนี้ พารามิเตอร์ที่ Google มีให้ในไฟล์การกำหนดค่า
- สำหรับเครื่องมือเชื่อมต่อเนื้อหา คุณต้องประกาศ
api.sourceId
และapi.serviceAccountPrivateKeyFile
เป็นพารามิเตอร์เหล่านี้เพื่อระบุตำแหน่ง ของที่เก็บและคีย์ส่วนตัวที่จำเป็นต่อการเข้าถึงที่เก็บ
- สำหรับเครื่องมือเชื่อมต่อข้อมูลประจำตัว คุณต้องประกาศ
api.identitySourceId
เป็นรายการนี้ จะระบุตำแหน่งของแหล่งที่มาของข้อมูลประจำตัวภายนอก หากคุณ ที่ซิงค์ผู้ใช้ คุณต้องประกาศapi.customerId
เป็นรหัสที่ไม่ซ้ำกันสำหรับ บัญชี Google Workspace ขององค์กร
ยกเว้นกรณีที่คุณต้องการลบล้างค่าเริ่มต้นของผลิตภัณฑ์อื่นๆ ที่ Google ให้บริการ คุณไม่จำเป็นต้องประกาศพารามิเตอร์เหล่านั้นในไฟล์การกำหนดค่า สำหรับข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์การกำหนดค่าที่ Google มีให้ เช่น เกี่ยวกับวิธีสร้างรหัสและคีย์บางรายการ โปรดดู พารามิเตอร์การกำหนดค่าที่ Google มีให้
นอกจากนี้ คุณยังกำหนดพารามิเตอร์เฉพาะที่เก็บของคุณเองเพื่อใช้ใน ใหม่
ส่งไฟล์การกำหนดค่าไปยังเครื่องมือเชื่อมต่อ
ตั้งค่าพร็อพเพอร์ตี้ของระบบ config
เพื่อส่งไฟล์การกำหนดค่าไปยัง
เครื่องมือเชื่อมต่อ คุณสามารถตั้งค่าพร็อพเพอร์ตี้ได้โดยใช้อาร์กิวเมนต์ -D
เมื่อเริ่มต้น
เครื่องมือเชื่อมต่อ เช่น คำสั่งต่อไปนี้จะเริ่มต้นเครื่องมือเชื่อมต่อ
ด้วยไฟล์การกำหนดค่า MyConfig.properties
:
java -classpath myconnector.jar;... -Dconfig=MyConfig.properties MyConnector
หากไม่มีอาร์กิวเมนต์นี้ SDK จะพยายามเข้าถึงการกำหนดค่าเริ่มต้น
ไฟล์ชื่อ connector-config.properties
กำหนดกลยุทธ์การข้ามผ่าน
ฟังก์ชันหลักของเครื่องมือเชื่อมต่อเนื้อหาคือข้ามผ่านที่เก็บข้อมูลและ จัดทำดัชนีข้อมูล คุณต้องใช้กลยุทธ์การส่งผ่านโดยพิจารณาจากขนาดและ เค้าโครงของข้อมูลในที่เก็บของคุณ คุณจะออกแบบกลยุทธ์ของตัวคุณเองหรือ จากกลยุทธ์ต่อไปนี้ที่ใช้ใน SDK
- กลยุทธ์การข้ามผ่านเต็มรูปแบบ
กลยุทธ์การข้ามผ่านแบบเต็มรูปแบบจะสแกนที่เก็บทั้งหมดและจัดทำดัชนีแบบไม่เปิดเผย ทุกรายการ กลยุทธ์นี้มักจะใช้เมื่อคุณมีที่เก็บขนาดเล็กและ มีค่าใช้จ่ายในการดำเนินการข้ามผ่านโดยสมบูรณ์ทุกครั้งที่คุณจัดทำดัชนี
กลยุทธ์การข้ามผ่านนี้เหมาะสำหรับที่เก็บขนาดเล็กที่มี ข้อมูลคงที่ ข้อมูลที่ไม่ใช่แบบลำดับชั้น คุณอาจใช้กลยุทธ์การส่งผ่านนี้ได้ด้วย เมื่อการตรวจหาการเปลี่ยนแปลงทำได้ยากหรือที่เก็บไม่รองรับ
- กลยุทธ์การส่งผ่านรายการ
กลยุทธ์การข้ามผ่านรายการจะสแกนที่เก็บทั้งหมด รวมถึงที่เก็บย่อยทั้งหมด โหนดเพื่อระบุสถานะของแต่ละรายการ จากนั้น เครื่องมือเชื่อมต่อจะใช้เวลาสักครู่ ผ่านและจัดทำดัชนีเฉพาะรายการใหม่หรือมีการอัปเดตตั้งแต่ครั้งล่าสุด การจัดทำดัชนี กลยุทธ์นี้มักจะใช้เพื่อเพิ่ม การอัปเดตดัชนีที่มีอยู่ (แทนที่จะต้องทำการส่งผ่านโดยสมบูรณ์ทุก ทุกครั้งที่คุณอัปเดตดัชนี)
กลยุทธ์การข้ามผ่านนี้เหมาะสำหรับกรณีที่การตรวจหาการเปลี่ยนแปลงทำได้ยาก หรือ ที่จัดเก็บไม่ได้รับการสนับสนุน โดยคุณจะมีข้อมูลที่ไม่ใช่ลำดับชั้น และ การทำงานกับชุดข้อมูลขนาดใหญ่มาก
- การส่งผ่านกราฟ
กลยุทธ์การข้ามผ่านกราฟจะสแกนโหนดระดับบนสุดทั้งหมดที่ระบุ สถานะของสินค้าแต่ละรายการ จากนั้น เครื่องมือเชื่อมต่อจะรับการส่งครั้งที่ 2 และดัชนีเท่านั้น รายการในโหนดรากเป็นรายการใหม่หรือได้รับการอัปเดตแล้วตั้งแต่การจัดทำดัชนีครั้งล่าสุด สุดท้าย เครื่องมือเชื่อมต่อจะส่งรหัสย่อยแล้วจัดทำดัชนีรายการในโหนดย่อย ใหม่หรือได้รับการอัปเดตแล้ว ตัวเชื่อมจะค่อยๆ สิ้นสุดไปเรื่อยๆ ผ่าน โหนดย่อยทั้งหมดจนกว่าจะจัดการได้ครบทั้งหมด โดยปกติการส่งผ่านดังกล่าว ใช้สำหรับที่เก็บแบบลำดับชั้นที่ไม่ได้แสดงรายการรหัสทั้งหมด ใช้ได้จริง
กลยุทธ์นี้เหมาะสำหรับคุณมีข้อมูลตามลำดับชั้นที่จำเป็นต้องมี ที่รวบรวมข้อมูล เช่น ไดเรกทอรีหรือหน้าเว็บต่างๆ
แต่ละกลยุทธ์การข้ามผ่านเหล่านี้จะใช้โดยเครื่องมือเชื่อมต่อเทมเพลต ใน SDK แม้ว่าคุณจะสามารถใช้กลยุทธ์การข้ามผ่านของตนเอง แต่สิ่งเหล่านี้ ของเทมเพลตจะเร่งการพัฒนาเครื่องมือเชื่อมต่อของคุณ ถึง สร้างเครื่องมือเชื่อมต่อโดยใช้เทมเพลต ดำเนินการต่อไปยังส่วนที่เกี่ยวข้องกับ กลยุทธ์การข้ามผ่านของคุณ
- สร้างเครื่องมือเชื่อมต่อการข้ามผ่านแบบเต็มโดยใช้คลาสเทมเพลต
- สร้างเครื่องมือเชื่อมต่อการข้ามผ่านรายการโดยใช้คลาสเทมเพลต
- สร้างเครื่องมือเชื่อมต่อการข้ามผ่านกราฟโดยใช้คลาสเทมเพลต
สร้างเครื่องมือเชื่อมต่อการข้ามผ่านแบบสมบูรณ์โดยใช้คลาสเทมเพลต
เอกสารส่วนนี้หมายถึงข้อมูลโค้ดจาก FullTraversalSample
ใช้งานจุดแรกเข้าของเครื่องมือเชื่อมต่อ
จุดแรกเข้าของเครื่องมือเชื่อมต่อคือ
main()
วิธี งานหลักของวิธีนี้คือการสร้างอินสแตนซ์ของ
Application
และเรียกใช้
start()
เพื่อเรียกใช้เครื่องมือเชื่อมต่อ
ก่อนโทร
application.start()
ให้ใช้
IndexingApplication.Builder
เพื่อสร้างอินสแตนซ์
FullTraversalConnector
เทมเพลต
FullTraversalConnector
ยอมรับ
Repository
ซึ่งมีเมธอดที่คุณใช้ ข้อมูลโค้ดต่อไปนี้จะแสดงวิธีการ
เพื่อใช้เมธอด main()
:
ในเบื้องหลัง SDK เรียก
initConfig()
หลังจากเรียกเมธอด main()
ของเครื่องมือเชื่อมต่อ
Application.build
initConfig()
วิธี
ทำงานต่อไปนี้
- เรียกใช้
Configuation.isInitialized()
เพื่อให้มั่นใจว่าConfiguration
ยังไม่ได้เริ่มต้น - เริ่มต้นออบเจ็กต์
Configuration
ด้วยคีย์-ค่าที่ Google จัดหา คู่ คู่คีย์-ค่าแต่ละคู่จะจัดเก็บไว้ในแท็กConfigValue
ภายในออบเจ็กต์Configuration
ใช้อินเทอร์เฟซ Repository
วัตถุประสงค์เพียงอย่างเดียวของออบเจ็กต์ Repository
คือการทำการส่งผ่านและ
การจัดทำดัชนีรายการที่เก็บ เมื่อใช้
เทมเพลต คุณต้องลบล้างเมธอดบางเมธอดภายใน Repository
เท่านั้น
เพื่อสร้างเครื่องมือเชื่อมต่อเนื้อหา วิธีการที่คุณลบล้างจะขึ้นอยู่กับ
เทมเพลตและกลยุทธ์การข้ามผ่านที่คุณใช้ สำหรับ
FullTraversalConnector
ให้ลบล้างเมธอดต่อไปนี้
init()
หากต้องการดำเนินการตั้งค่าและเริ่มต้นพื้นที่เก็บข้อมูล ให้ลบล้างinit()
วิธีgetAllDocs()
หากต้องการข้ามผ่านและจัดทำดัชนีรายการทั้งหมดในที่เก็บข้อมูล ให้แทนที่getAllDocs()
วิธี เมธอดนี้จะถูกเรียกครั้งเดียวสำหรับการส่งผ่านตามกำหนดการแต่ละรายการ (ตามที่กำหนดโดยการกำหนดค่าของคุณ)(ไม่บังคับ)
getChanges()
หากที่เก็บของคุณรองรับการตรวจหาการเปลี่ยนแปลง ให้ลบล้างgetChanges()
วิธี เมธอดนี้จะถูกเรียกครั้งเดียวสำหรับส่วนเพิ่มที่ตั้งเวลาไว้แต่ละรายการ การส่งผ่าน (ตามที่กำหนดโดยการกำหนดค่าของคุณ) เพื่อเรียกรายการที่แก้ไขและ จัดทำดัชนี(ไม่บังคับ)
close()
หากต้องการล้างข้อมูลที่เก็บ ให้ลบล้างclose()
ระบบจะเรียกวิธีนี้เพียงครั้งเดียวระหว่างการปิดเครื่องเชื่อมต่อ
แต่ละวิธีการใน
ออบเจ็กต์ Repository
รายการแสดงผลบางประเภทของ
ApiOperation
ออบเจ็กต์ ออบเจ็กต์ ApiOperation
ดำเนินการในรูปแบบของออบเจ็กต์เดียว หรือ
อาจเป็นหลายค่า, IndexingService.indexItem()
เพื่อจัดทำดัชนีที่เก็บจริง
รับพารามิเตอร์การกำหนดค่าที่กำหนดเอง
ในการจัดการการกำหนดค่าของเครื่องมือเชื่อมต่อ คุณจะต้อง
พารามิเตอร์ที่กำหนดเองจาก
Configuration
ออบเจ็กต์ งานนี้มักจะดำเนินการใน
Repository
ของชั้นเรียน
init()
คลาส Configuration
มีวิธีรับข้อมูลประเภทต่างๆ หลายวิธี
จากการกำหนดค่า แต่ละวิธีจะแสดงผลออบเจ็กต์ ConfigValue
จากนั้น คุณจะ
ใช้ออบเจ็กต์ ConfigValue
get()
เพื่อดึงค่าจริงขึ้นมา
ข้อมูลโค้ดต่อไปนี้จาก
FullTraversalSample
แสดงวิธีเรียกข้อมูล
ค่าจำนวนเต็มที่กำหนดเองค่าเดียวจากออบเจ็กต์ Configuration
:
หากต้องการรับและแยกวิเคราะห์พารามิเตอร์ที่มีหลายค่า ให้ใช้
โปรแกรมแยกวิเคราะห์ประเภทชั้นเรียนของ Configuration
เพื่อแยกวิเคราะห์ข้อมูลเป็นส่วนย่อยที่แยกจากกัน
ข้อมูลโค้ดจากเครื่องมือเชื่อมต่อบทแนะนำต่อไปนี้ใช้
getMultiValue
วิธีรับรายการชื่อที่เก็บ GitHub
ดำเนินการข้ามผ่านโดยสมบูรณ์
ลบล้าง
getAllDocs()
เพื่อทำการข้ามผ่านโดยสมบูรณ์และจัดทำดัชนีที่เก็บของคุณ getAllDocs()
ยอมรับจุดเช็คพอยท์ เช็คพอยท์จะใช้เพื่อดำเนินการจัดทำดัชนีต่อที่
บางรายการควรทำให้กระบวนการหยุดชะงัก สำหรับแต่ละรายการใน
โปรดทำตามขั้นตอนต่อไปนี้ในเมธอด getAllDocs()
- ตั้งค่าสิทธิ์
- ตั้งค่าข้อมูลเมตาสำหรับรายการที่คุณกำลังจัดทำดัชนี
- รวมข้อมูลเมตาและรายการให้เป็นรายการเดียวที่จัดทำดัชนีได้
RepositoryDoc
- จัดแพ็กเกจแต่ละรายการที่จัดทำดัชนีได้ไว้ในตัววนซ้ำที่
getAllDocs()
ส่งคืน โปรดทราบว่าgetAllDocs()
จะแสดงผลค่าCheckpointCloseableIterable
ซึ่งเป็นการปรับปรุงจากApiOperation
แต่ละออบเจ็กต์ที่แสดงคำขอ API ที่ดำเนินการRepositoryDoc
เช่น การจัดทำดัชนี
หากชุดรายการมีขนาดใหญ่เกินกว่าที่จะประมวลผลในการเรียกครั้งเดียว ให้ใส่
จุดตรวจและตั้งค่า
hasMore(true)
เพื่อระบุว่ามีรายการที่พร้อมสำหรับการจัดทำดัชนีเพิ่มเติม
ตั้งค่าสิทธิ์สำหรับรายการ
ที่เก็บของคุณใช้รายการควบคุมการเข้าถึง (ACL) เพื่อระบุผู้ใช้หรือ กลุ่มที่มีสิทธิ์เข้าถึงรายการหนึ่งๆ ACL คือรายการรหัสของกลุ่มหรือผู้ใช้ ที่สามารถเข้าถึงสิ่งนั้นได้
คุณต้องทำสำเนา ACL ที่ที่เก็บของคุณใช้เพื่อให้แน่ใจว่าเฉพาะผู้ใช้เหล่านั้น ที่มีสิทธิ์เข้าถึงรายการ สามารถดูรายการนั้นในผลการค้นหา ต้องระบุ ACL ของรายการเมื่อจัดทำดัชนีรายการเพื่อให้ Google Cloud Search มีข้อมูลที่จำเป็นในการให้ระดับการเข้าถึงที่ถูกต้อง ให้รายการนั้น
Content Connector SDK มีชุดคลาสและเมธอดของ ACL แบบสมบูรณ์ในการ สร้างแบบจำลอง ACL ของที่เก็บส่วนใหญ่ คุณต้องวิเคราะห์ ACL สำหรับแต่ละรายการใน และสร้าง ACL ที่ตรงกันสำหรับ Google Cloud Search เมื่อคุณ จัดทำดัชนีรายการ หาก ACL ของที่เก็บใช้แนวคิด เช่น ACL การสืบทอดค่า การสร้างโมเดลที่ ACL อาจเป็นเรื่องยาก หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับ Google ACL ของ Cloud Search อ้างอิงถึง ACL ของ Google Cloud Search
หมายเหตุ: Cloud Search Indexing API รองรับ ACL แบบโดเมนเดียว แต่ไม่
สนับสนุน ACL ข้ามโดเมน ใช้เมนู
Acl.Builder
เพื่อตั้งค่าการเข้าถึงแต่ละรายการโดยใช้ ACL ข้อมูลโค้ดต่อไปนี้ใช้
จากตัวอย่างการส่งผ่านแบบสมบูรณ์
ผู้ใช้ทั้งหมดหรือ "ผู้ใช้หลัก"
(getCustomerPrincipal()
)
เป็น "ผู้อ่าน" รายการทั้งหมด
(.setReaders()
)
เมื่อทำการค้นหา
คุณต้องทำความเข้าใจ ACL เพื่อสร้างโมเดล ACL สำหรับที่เก็บอย่างถูกต้อง สำหรับ เช่น คุณอาจกำลังจัดทำดัชนีไฟล์ภายในระบบไฟล์ที่ ใช้โมเดลการรับค่าบางประเภทซึ่งโฟลเดอร์ย่อยจะรับค่าสิทธิ์ จากโฟลเดอร์หลัก การรับช่วงค่า ACL ของการสร้างโมเดลต้องใช้ข้อมูลเพิ่มเติม ครอบคลุมใน ACL ของ Google Cloud Search
ตั้งค่าข้อมูลเมตาสำหรับรายการ
ระบบจะจัดเก็บข้อมูลเมตาไว้ในออบเจ็กต์ Item
หากต้องการสร้างItem
คุณต้องมี
รหัสสตริง, ประเภทรายการ, ACL, URL และเวอร์ชันขั้นต่ำของรายการนั้นๆ
ข้อมูลโค้ดต่อไปนี้แสดงวิธีสร้าง Item
โดยใช้
IndexingItemBuilder
ผู้ช่วยของเรา
สร้างรายการที่จัดทำดัชนีได้
เมื่อคุณกำหนดข้อมูลเมตาสำหรับรายการแล้ว คุณสามารถสร้าง
จริงที่จัดทำดัชนีได้
โดยใช้
RepositoryDoc.Builder
ตัวอย่างต่อไปนี้แสดงวิธีสร้างรายการเดี่ยวที่จัดทำดัชนีได้
RepositoryDoc
เป็น ApiOperation
ประเภทหนึ่งที่ดำเนินการ
คำขอ IndexingService.indexItem()
คุณยังสามารถใช้
setRequestMode()
ของเมธอด
RepositoryDoc.Builder
ประเภทที่จะระบุคำขอให้จัดทำดัชนีเป็น ASYNCHRONOUS
หรือ SYNCHRONOUS
:
ASYNCHRONOUS
- โหมดอะซิงโครนัสทำให้เวลาในการตอบสนองนานขึ้นสำหรับการจัดทําดัชนีเพื่อแสดงและ รองรับโควต้าอัตราการส่งข้อมูลขนาดใหญ่สำหรับคำขอจัดทำดัชนี โหมดอะซิงโครนัสคือ แนะนำสำหรับการจัดทำดัชนีเริ่มต้น (โฆษณาทดแทน) ของที่เก็บทั้งหมด
SYNCHRONOUS
- โหมดซิงโครนัสทำให้เวลาในการตอบสนองสำหรับการจัดทำดัชนีเพื่อแสดงให้สั้นลง และ
รองรับโควต้าอัตราการส่งข้อมูลที่จำกัด โหมดซิงโครนัสคือ
แนะนำสำหรับการจัดทำดัชนีการอัปเดตและการเปลี่ยนแปลงที่เก็บ ถ้า
ไม่ได้ระบุ โหมดคำขอจะมีค่าเริ่มต้นเป็น
SYNCHRONOUS
จัดแพ็กเกจแต่ละรายการที่จัดทำดัชนีได้ในตัวทำซ้ำ
getAllDocs()
จะแสดงผล Iterator
โดยเฉพาะ
CheckpointCloseableIterable
จาก
RepositoryDoc
ออบเจ็กต์ คุณสามารถใช้
CheckpointClosableIterableImpl.Builder
เพื่อสร้างและแสดงผลตัววนซ้ำ ข้อมูลโค้ดต่อไปนี้จะแสดงวิธีการ
เพื่อสร้างและแสดงผลตัววนซ้ำ
SDK เรียกใช้การเรียกใช้การจัดทำดัชนีแต่ละครั้งที่อยู่ภายในตัวทำซ้ำ
ขั้นตอนถัดไป
ขั้นตอนถัดไปที่คุณทำได้มีดังนี้
- (ไม่บังคับ) หากอัตราการส่งข้อมูลการจัดทำดัชนีดูเหมือนช้า โปรดดูเพิ่มอัตราการจัดทำดัชนีสำหรับ
FullTraversalConnector
- (ไม่บังคับ) ใช้
close()
ปล่อยทรัพยากรก่อนปิดเครื่อง - (ไม่บังคับ) สร้างเครื่องมือเชื่อมต่อข้อมูลประจำตัว โดยใช้ Content Connector SDK
สร้างเครื่องมือเชื่อมต่อการข้ามผ่านรายการโดยใช้คลาสเทมเพลต
คิวการจัดทำดัชนีของ Cloud Search ใช้สำหรับเก็บรหัสและแฮชที่ไม่บังคับ สำหรับแต่ละรายการในที่เก็บ การพุชเครื่องมือเชื่อมต่อการข้ามผ่านรายการ รหัสรายการไปยังคิวการจัดทำดัชนีของ Google Cloud Search และเรียกข้อมูลรหัสทีละรายการ สำหรับการจัดทำดัชนี Google Cloud Search จะรักษาคิวและ เปรียบเทียบเนื้อหาในคิวเพื่อพิจารณาสถานะรายการ เช่น สินค้าหนึ่งๆ มี ถูกลบออกจากที่เก็บแล้ว ดูข้อมูลเพิ่มเติมเกี่ยวกับ Cloud Search คิวการจัดทำดัชนี โปรดไปที่ คิวการจัดทำดัชนีของ Cloud Search
เอกสารส่วนนี้หมายถึงข้อมูลโค้ดจาก ListTraversalSample
ใช้งานจุดแรกเข้าของเครื่องมือเชื่อมต่อ
จุดแรกเข้าของเครื่องมือเชื่อมต่อคือ
main()
วิธี งานหลักของวิธีนี้คือการสร้างอินสแตนซ์ของ
Application
และเรียกใช้
start()
เพื่อเรียกใช้เครื่องมือเชื่อมต่อ
ก่อนโทร
application.start()
ให้ใช้
IndexingApplication.Builder
เพื่อสร้างอินสแตนซ์
ListingConnector
เทมเพลต ListingConnector
ยอมรับ
Repository
ซึ่งมีเมธอดที่คุณใช้ ข้อมูลโค้ดต่อไปนี้จะแสดงวิธีการ
สร้างอินสแตนซ์ ListingConnector
และ Repository
ที่เชื่อมโยง:
ในเบื้องหลัง SDK เรียก
initConfig()
หลังจากเรียกเมธอด main()
ของเครื่องมือเชื่อมต่อ
Application.build
เมธอด initConfig()
:
- เรียกใช้
Configuation.isInitialized()
เพื่อให้มั่นใจว่าConfiguration
ยังไม่ได้เริ่มต้น - เริ่มต้นออบเจ็กต์
Configuration
ด้วยคีย์-ค่าที่ Google จัดหา คู่ คู่คีย์-ค่าแต่ละคู่จะจัดเก็บไว้ในแท็กConfigValue
ภายในออบเจ็กต์Configuration
ใช้อินเทอร์เฟซ Repository
วัตถุประสงค์เพียงอย่างเดียวของออบเจ็กต์ Repository
คือการทำการส่งผ่านและ
การจัดทำดัชนีรายการที่เก็บ เมื่อใช้เทมเพลต คุณจะทำได้เพียงลบล้าง
เมธอดภายในอินเทอร์เฟซ Repository
เพื่อสร้างเครื่องมือเชื่อมต่อเนื้อหา
วิธีการที่คุณลบล้างจะขึ้นอยู่กับเทมเพลตและกลยุทธ์การข้ามผ่านที่คุณใช้ สำหรับ
ListingConnector
ลบล้างเมธอดต่อไปนี้
init()
หากต้องการดำเนินการตั้งค่าและเริ่มต้นพื้นที่เก็บข้อมูล ให้ลบล้างinit()
วิธีgetIds()
หากต้องการเรียกข้อมูลรหัสและค่าแฮชสำหรับระเบียนทั้งหมดในที่เก็บ ลบล้างเมธอดgetIds()
getDoc()
หากต้องการเพิ่มใหม่ อัปเดต แก้ไข หรือลบรายการออกจากดัชนี ให้แทนที่getDoc()
วิธี(ไม่บังคับ)
getChanges()
หากที่เก็บของคุณรองรับการตรวจหาการเปลี่ยนแปลง ให้ลบล้างgetChanges()
วิธี เมธอดนี้จะถูกเรียกครั้งเดียวสำหรับส่วนเพิ่มที่ตั้งเวลาไว้แต่ละรายการ การส่งผ่าน (ตามที่กำหนดโดยการกำหนดค่าของคุณ) เพื่อเรียกรายการที่แก้ไขและ จัดทำดัชนี(ไม่บังคับ)
close()
หากต้องการล้างข้อมูลที่เก็บ ให้ลบล้างclose()
ระบบจะเรียกวิธีนี้เพียงครั้งเดียวระหว่างการปิดเครื่องเชื่อมต่อ
เมธอดของออบเจ็กต์ Repository
แต่ละรายการแสดงผลค่าบางประเภท
ApiOperation
ออบเจ็กต์ ออบเจ็กต์ ApiOperation
ดำเนินการในรูปแบบของออบเจ็กต์เดียว หรือ
อาจเป็นหลายค่า, IndexingService.indexItem()
เพื่อจัดทำดัชนีที่เก็บจริง
รับพารามิเตอร์การกำหนดค่าที่กำหนดเอง
ในการจัดการการกำหนดค่าของเครื่องมือเชื่อมต่อ คุณจะต้อง
พารามิเตอร์ที่กำหนดเองจาก
Configuration
ออบเจ็กต์ งานนี้มักจะดำเนินการใน
Repository
ของชั้นเรียน
init()
คลาส Configuration
มีวิธีรับข้อมูลประเภทต่างๆ หลายวิธี
จากการกำหนดค่า แต่ละวิธีจะแสดงผลออบเจ็กต์ ConfigValue
จากนั้น คุณจะ
ใช้ออบเจ็กต์ ConfigValue
get()
เพื่อดึงค่าจริงขึ้นมา
ข้อมูลโค้ดต่อไปนี้จาก
FullTraversalSample
แสดงวิธีเรียกข้อมูล
ค่าจำนวนเต็มที่กำหนดเองค่าเดียวจากออบเจ็กต์ Configuration
:
หากต้องการรับและแยกวิเคราะห์พารามิเตอร์ที่มีหลายค่า ให้ใช้
โปรแกรมแยกวิเคราะห์ประเภทชั้นเรียนของ Configuration
เพื่อแยกวิเคราะห์ข้อมูลเป็นส่วนย่อยที่แยกจากกัน
ข้อมูลโค้ดจากเครื่องมือเชื่อมต่อบทแนะนำต่อไปนี้ใช้
getMultiValue
วิธีรับรายการชื่อที่เก็บ GitHub
ดำเนินการข้ามผ่านรายการ
ลบล้าง
getIds()
เพื่อเรียกข้อมูลรหัสและค่าแฮชสำหรับระเบียนทั้งหมดในที่เก็บ
เมธอด getIds()
ยอมรับจุดเช็คพอยท์ เช็คพอยท์ใช้เพื่อดำเนินการต่อ
การจัดทำดัชนีที่รายการหนึ่งๆ โดยเฉพาะหากกระบวนการต้องหยุดชะงัก
ถัดไป ลบล้าง
getDoc()
ในการจัดการแต่ละรายการในคิวการจัดทำดัชนีของ Cloud Search
รหัสสินค้าพุชและค่าแฮช
ลบล้าง
getIds()
เพื่อดึงข้อมูลรหัสสินค้าและค่าแฮชเนื้อหาที่เชื่อมโยงจาก
ที่เก็บได้ จากนั้นระบบจะรวมคู่รหัสและค่าแฮชไว้ในการดำเนินการพุช
คำขอไปยังคิวการจัดทำดัชนีของ Cloud Search โดยปกติรหัสรูทหรือรหัสระดับบนสุด
พุชก่อนตามด้วยรหัสย่อยจนกว่าจะได้รายการทั้งลำดับชั้น
ประมวลผลแล้ว
เมธอด getIds()
จะยอมรับจุดเช็คพอยท์ที่แสดงรายการสุดท้ายที่จะ
จัดทำดัชนีแล้ว คุณใช้จุดตรวจสอบเพื่อดำเนินการจัดทำดัชนีต่อได้ตามรายการที่เจาะจง
กระบวนการจะหยุดชะงัก สำหรับแต่ละรายการในที่เก็บ ให้ดำเนินการต่อไปนี้
ขั้นตอนในเมธอด getIds()
:
- รับรหัสรายการแต่ละรายการและค่าแฮชที่เกี่ยวข้องจากที่เก็บ
- จัดคู่รหัสและค่าแฮชแต่ละรายการเป็น
PushItems
- รวม
PushItems
แต่ละรายการเป็นตัววนซ้ำที่แสดงผลโดยgetIds()
โปรดทราบว่าgetIds()
จะแสดงผลค่าCheckpointCloseableIterable
ซึ่งเป็นการปรับปรุงจากApiOperation
แต่ละออบเจ็กต์ที่แสดงคำขอ API ที่ดำเนินการRepositoryDoc
เช่น พุชรายการไปยังคิว
ข้อมูลโค้ดต่อไปนี้แสดงวิธีรับรหัสสินค้าแต่ละรายการและค่าแฮช และ
ให้แทรกลงใน
PushItems
PushItems
เป็นคำขอ ApiOperation
เพื่อพุชรายการไปยัง Cloud Search
คิวการจัดทำดัชนี
ข้อมูลโค้ดต่อไปนี้จะแสดงวิธีใช้
PushItems.Builder
เพื่อรวมรหัสและค่าแฮชไว้ในการพุชเพียงครั้งเดียว
ApiOperation
ระบบจะพุชรายการไปยังคิวการจัดทำดัชนีของ Cloud Search เพื่อประมวลผลต่อไป
ดึงข้อมูลและจัดการแต่ละรายการ
ลบล้าง
getDoc()
เพื่อจัดการแต่ละรายการในคิวการจัดทำดัชนีของ Cloud Search
รายการอาจเป็นรายการใหม่ แก้ไข ไม่เปลี่ยนแปลง หรือไม่มีอยู่ในแหล่งที่มาอีกต่อไป
ที่เก็บได้ ดึงข้อมูลและจัดทำดัชนีแต่ละรายการที่เป็นรายการใหม่หรือที่มีการแก้ไข นำรายการออก
จากดัชนีที่ไม่มีอยู่ในที่เก็บต้นทางอีกต่อไป
เมธอด getDoc()
ยอมรับรายการจาก Google Cloud Search
คิวการจัดทำดัชนี สำหรับแต่ละรายการในคิว ให้ทำตามขั้นตอนเหล่านี้ใน
เมธอด getDoc()
:
ตรวจสอบว่ามีรหัสของรายการภายในคิวการจัดทำดัชนีของ Cloud Search หรือไม่ ในที่เก็บ หากไม่ ให้ลบรายการออกจากดัชนี
สำรวจดัชนีเพื่อดูสถานะรายการ และหากรายการหนึ่งๆ ไม่เปลี่ยนแปลง (
ACCEPTED
) ก็ไม่ต้องทำ ทำอะไรก็ได้ดัชนีมีการเปลี่ยนแปลงหรือรายการใหม่:
- ตั้งค่าสิทธิ์
- ตั้งค่าข้อมูลเมตาสำหรับรายการที่คุณกำลังจัดทำดัชนี
- รวมข้อมูลเมตาและรายการให้เป็นรายการเดียวที่จัดทำดัชนีได้
RepositoryDoc
- ส่งคืน
RepositoryDoc
หมายเหตุ: เทมเพลต ListingConnector
ไม่รองรับการแสดง null
ในวันที่
เมธอด getDoc()
แสดงผลลัพธ์ null
รายการใน NullPointerException.
จัดการรายการที่ลบไปแล้ว
ข้อมูลโค้ดต่อไปนี้แสดงวิธีตรวจสอบว่ามีรายการอยู่ใน ที่เก็บถาวรนั้น หากไม่ใช่ ก็ให้ลบออก
โปรดทราบว่า documents
เป็นโครงสร้างข้อมูลที่แสดงถึงที่เก็บ ถ้า
ไม่พบ documentID
ในdocuments
ส่งคืน
APIOperations.deleteItem(resourceName)
เพื่อลบรายการออกจากดัชนี
จัดการรายการที่ไม่เปลี่ยนแปลง
ข้อมูลโค้ดต่อไปนี้แสดงวิธีสำรวจสถานะรายการใน Cloud Search คิวการจัดทำดัชนีและจัดการรายการที่ไม่มีการเปลี่ยนแปลง
เพื่อดูว่ารายการไม่มีการแก้ไขหรือไม่ ให้ตรวจสอบสถานะของรายการด้วย กับข้อมูลเมตาอื่นๆ ที่อาจบ่งชี้ถึงการเปลี่ยนแปลง ในตัวอย่างนี้ ข้อมูลเมตา จะใช้เพื่อระบุว่ามีการเปลี่ยนแปลงรายการนั้นหรือไม่
ตั้งค่าสิทธิ์สำหรับรายการ
ที่เก็บของคุณใช้รายการควบคุมการเข้าถึง (ACL) เพื่อระบุผู้ใช้หรือ กลุ่มที่มีสิทธิ์เข้าถึงรายการหนึ่งๆ ACL คือรายการรหัสของกลุ่มหรือผู้ใช้ ที่สามารถเข้าถึงสิ่งนั้นได้
คุณต้องทำสำเนา ACL ที่ที่เก็บของคุณใช้เพื่อให้แน่ใจว่าเฉพาะผู้ใช้เหล่านั้น ที่มีสิทธิ์เข้าถึงรายการ สามารถดูรายการนั้นในผลการค้นหา ต้องระบุ ACL ของรายการเมื่อจัดทำดัชนีรายการเพื่อให้ Google Cloud Search มีข้อมูลที่จำเป็นในการให้ระดับการเข้าถึงที่ถูกต้อง ให้รายการนั้น
Content Connector SDK มีชุดคลาสและเมธอดของ ACL แบบสมบูรณ์ในการ สร้างแบบจำลอง ACL ของที่เก็บส่วนใหญ่ คุณต้องวิเคราะห์ ACL สำหรับแต่ละรายการใน และสร้าง ACL ที่ตรงกันสำหรับ Google Cloud Search เมื่อคุณ จัดทำดัชนีรายการ หาก ACL ของที่เก็บใช้แนวคิด เช่น ACL การสืบทอดค่า การสร้างโมเดลที่ ACL อาจเป็นเรื่องยาก หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับ Google ACL ของ Cloud Search อ้างอิงถึง ACL ของ Google Cloud Search
หมายเหตุ: Cloud Search Indexing API รองรับ ACL แบบโดเมนเดียว แต่ไม่
สนับสนุน ACL ข้ามโดเมน ใช้เมนู
Acl.Builder
เพื่อตั้งค่าการเข้าถึงแต่ละรายการโดยใช้ ACL ข้อมูลโค้ดต่อไปนี้ใช้
จากตัวอย่างการส่งผ่านแบบสมบูรณ์
ผู้ใช้ทั้งหมดหรือ "ผู้ใช้หลัก"
(getCustomerPrincipal()
)
เป็น "ผู้อ่าน" รายการทั้งหมด
(.setReaders()
)
เมื่อทำการค้นหา
คุณต้องทำความเข้าใจ ACL เพื่อสร้างโมเดล ACL สำหรับที่เก็บอย่างถูกต้อง สำหรับ เช่น คุณอาจกำลังจัดทำดัชนีไฟล์ภายในระบบไฟล์ที่ ใช้โมเดลการรับค่าบางประเภทซึ่งโฟลเดอร์ย่อยจะรับค่าสิทธิ์ จากโฟลเดอร์หลัก การรับช่วงค่า ACL ของการสร้างโมเดลต้องใช้ข้อมูลเพิ่มเติม ครอบคลุมใน ACL ของ Google Cloud Search
ตั้งค่าข้อมูลเมตาสำหรับรายการ
ระบบจะจัดเก็บข้อมูลเมตาไว้ในออบเจ็กต์ Item
หากต้องการสร้างItem
คุณต้องมี
รหัสสตริง, ประเภทรายการ, ACL, URL และเวอร์ชันขั้นต่ำของรายการนั้นๆ
ข้อมูลโค้ดต่อไปนี้แสดงวิธีสร้าง Item
โดยใช้
IndexingItemBuilder
ผู้ช่วยของเรา
สร้างรายการที่จัดทำดัชนีได้
เมื่อคุณกำหนดข้อมูลเมตาสำหรับรายการแล้ว คุณสามารถสร้าง
จริงที่จัดทำดัชนีได้
โดยใช้
RepositoryDoc.Builder
ตัวอย่างต่อไปนี้แสดงวิธีสร้างรายการเดี่ยวที่จัดทำดัชนีได้
RepositoryDoc
เป็นประเภท
ApiOperation
ที่ดำเนินการจริง
IndexingService.indexItem()
อีกครั้ง
คุณยังสามารถใช้
setRequestMode()
ของเมธอด
RepositoryDoc.Builder
ประเภทที่จะระบุคำขอให้จัดทำดัชนีเป็น ASYNCHRONOUS
หรือ SYNCHRONOUS
:
ASYNCHRONOUS
- โหมดอะซิงโครนัสทำให้เวลาในการตอบสนองนานขึ้นสำหรับการจัดทําดัชนีเพื่อแสดงและ รองรับโควต้าอัตราการส่งข้อมูลขนาดใหญ่สำหรับคำขอจัดทำดัชนี โหมดอะซิงโครนัสคือ แนะนำสำหรับการจัดทำดัชนีเริ่มต้น (โฆษณาทดแทน) ของที่เก็บทั้งหมด
SYNCHRONOUS
- โหมดซิงโครนัสทำให้เวลาในการตอบสนองสำหรับการจัดทำดัชนีเพื่อแสดงให้สั้นลง และ
รองรับโควต้าอัตราการส่งข้อมูลที่จำกัด โหมดซิงโครนัสคือ
แนะนำสำหรับการจัดทำดัชนีการอัปเดตและการเปลี่ยนแปลงที่เก็บ ถ้า
ไม่ได้ระบุ โหมดคำขอจะมีค่าเริ่มต้นเป็น
SYNCHRONOUS
ขั้นตอนถัดไป
ขั้นตอนถัดไปที่คุณทำได้มีดังนี้
- (ไม่บังคับ) ใช้
close()
ปล่อยทรัพยากรก่อนปิดเครื่อง - (ไม่บังคับ) สร้างเครื่องมือเชื่อมต่อข้อมูลประจำตัว โดยใช้ Content Connector SDK
สร้างเครื่องมือเชื่อมต่อการข้ามผ่านกราฟโดยใช้คลาสเทมเพลต
คิวการจัดทำดัชนีของ Cloud Search ใช้สำหรับเก็บรหัสและค่าแฮชที่ไม่บังคับ สำหรับแต่ละรายการในที่เก็บ เครื่องมือเชื่อมต่อการข้ามผ่านกราฟจะพุชรหัสรายการไปยัง คิวการจัดทำดัชนีของ Google Cloud Search และเรียกข้อมูลทีละรายการสำหรับ การจัดทำดัชนี Google Cloud Search จะรักษาคิวและเปรียบเทียบเนื้อหาของคิวกับ กำหนดสถานะรายการ เช่น มีการลบรายการออกจาก ที่เก็บได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับคิวการจัดทำดัชนีของ Cloud Search ได้ที่ ถึง คิวการจัดทำดัชนีของ Google Cloud Search
ระหว่างดัชนี ระบบจะดึงเนื้อหาของรายการจากที่เก็บข้อมูลและ ระบบจะพุชรหัสรายการย่อยไปยังคิว เครื่องมือเชื่อมต่อจะทำงานซ้ำ ประมวลผลรหัสระดับบนสุดและรหัสย่อยจนกว่าจะจัดการรายการทั้งหมด
เอกสารส่วนนี้หมายถึงข้อมูลโค้ดจาก GraphTraversalSample
ใช้งานจุดแรกเข้าของเครื่องมือเชื่อมต่อ
จุดแรกเข้าของเครื่องมือเชื่อมต่อคือ
main()
วิธี งานหลักของวิธีนี้คือการสร้างอินสแตนซ์ของ
Application
และเรียกใช้
start()
เพื่อเรียกใช้เครื่องมือเชื่อมต่อ
ก่อนโทร
application.start()
ให้ใช้
IndexingApplication.Builder
เพื่อสร้างเทมเพลต ListingConnector
ListingConnector
ยอมรับ
Repository
ซึ่งมีเมธอดที่คุณใช้
ข้อมูลโค้ดต่อไปนี้จะแสดงวิธีการ
สร้างอินสแตนซ์ ListingConnector
และ Repository
ที่เชื่อมโยง:
ในเบื้องหลัง SDK เรียก
initConfig()
หลังจากเรียกเมธอด main()
ของเครื่องมือเชื่อมต่อ
Application.build
เมธอด initConfig()
:
- เรียกใช้
Configuation.isInitialized()
เพื่อให้มั่นใจว่าConfiguration
ยังไม่ได้เริ่มต้น - เริ่มต้นออบเจ็กต์
Configuration
ด้วยคีย์-ค่าที่ Google จัดหา คู่ คู่คีย์-ค่าแต่ละคู่จะจัดเก็บไว้ในแท็กConfigValue
ภายในออบเจ็กต์Configuration
ใช้อินเทอร์เฟซ Repository
วัตถุประสงค์เพียงอย่างเดียวของ
ออบเจ็กต์ Repository
สำหรับการดำเนินการข้ามผ่านและการจัดทำดัชนีของที่เก็บ
รายการ เมื่อใช้เทมเพลต คุณเพียงต้องลบล้างเมธอดบางเมธอดภายในแท็ก
อินเทอร์เฟซ Repository
เพื่อสร้างเครื่องมือเชื่อมต่อเนื้อหา วิธีการที่คุณลบล้าง
ขึ้นอยู่กับเทมเพลตและกลยุทธ์การส่งผ่านที่คุณใช้ สำหรับ
ListingConnector
คุณจะลบล้างเมธอดต่อไปนี้
init()
หากต้องการดำเนินการตั้งค่าและเริ่มต้นพื้นที่เก็บข้อมูล ให้ลบล้างinit()
วิธีgetIds()
หากต้องการเรียกข้อมูลรหัสและค่าแฮชสำหรับระเบียนทั้งหมดในที่เก็บ ลบล้างเมธอดgetIds()
getDoc()
หากต้องการเพิ่มใหม่ อัปเดต แก้ไข หรือลบรายการออกจากดัชนี ให้แทนที่getDoc()
วิธี(ไม่บังคับ)
getChanges()
หากที่เก็บของคุณรองรับการตรวจหาการเปลี่ยนแปลง ให้ลบล้างgetChanges()
วิธี เมธอดนี้จะถูกเรียกครั้งเดียวสำหรับส่วนเพิ่มที่ตั้งเวลาไว้แต่ละรายการ การส่งผ่าน (ตามที่กำหนดโดยการกำหนดค่าของคุณ) เพื่อเรียกรายการที่แก้ไขและ จัดทำดัชนี(ไม่บังคับ)
close()
หากต้องการล้างข้อมูลที่เก็บ ให้ลบล้างclose()
ระบบจะเรียกวิธีนี้เพียงครั้งเดียวระหว่างการปิดเครื่องเชื่อมต่อ
แต่ละวิธีการใน
ออบเจ็กต์ Repository
แสดงผลออบเจ็กต์ ApiOperation
บางประเภท ApiOperation
ที่มีการดำเนินการในรูปแบบ
เดียว หรือหลายมิติ
IndexingService.indexItem()
เพื่อจัดทำดัชนีที่เก็บจริง
รับพารามิเตอร์การกำหนดค่าที่กำหนดเอง
ในการจัดการการกำหนดค่าของเครื่องมือเชื่อมต่อ คุณจะต้อง
พารามิเตอร์ที่กำหนดเองจาก
Configuration
ออบเจ็กต์ งานนี้มักจะดำเนินการใน
Repository
ของชั้นเรียน
init()
คลาส Configuration
มีวิธีรับข้อมูลประเภทต่างๆ หลายวิธี
จากการกำหนดค่า แต่ละวิธีจะแสดงผลออบเจ็กต์ ConfigValue
จากนั้น คุณจะ
ใช้ออบเจ็กต์ ConfigValue
get()
เพื่อดึงค่าจริงขึ้นมา
ข้อมูลโค้ดต่อไปนี้จาก
FullTraversalSample
แสดงวิธีเรียกข้อมูล
ค่าจำนวนเต็มที่กำหนดเองค่าเดียวจากออบเจ็กต์ Configuration
:
หากต้องการรับและแยกวิเคราะห์พารามิเตอร์ที่มีหลายค่า ให้ใช้
โปรแกรมแยกวิเคราะห์ประเภทของ Configuration
สำหรับแยกวิเคราะห์ข้อมูลเป็นส่วนย่อยที่แยกกัน
ข้อมูลโค้ดจากเครื่องมือเชื่อมต่อบทแนะนำต่อไปนี้ใช้
getMultiValue
วิธีรับรายการชื่อที่เก็บ GitHub
ทำการส่งผ่านกราฟ
ลบล้าง
getIds()
เพื่อเรียกข้อมูลรหัสและค่าแฮชสำหรับระเบียนทั้งหมดในที่เก็บ
เมธอด getIds()
ยอมรับจุดเช็คพอยท์ เช็คพอยท์ใช้เพื่อดำเนินการต่อ
การจัดทำดัชนีที่รายการหนึ่งๆ โดยเฉพาะหากกระบวนการต้องหยุดชะงัก
ถัดไป ลบล้าง
getDoc()
ในการจัดการแต่ละรายการในคิวการจัดทำดัชนีของ Cloud Search
รหัสสินค้าพุชและค่าแฮช
ลบล้าง
getIds()
เพื่อดึงข้อมูลรหัสสินค้าและค่าแฮชเนื้อหาที่เชื่อมโยงจาก
ที่เก็บได้ จากนั้นระบบจะรวมคู่รหัสและค่าแฮชไว้ในการดำเนินการพุช
คำขอไปยังคิวการจัดทำดัชนีของ Cloud Search โดยปกติรหัสรูทหรือรหัสระดับบนสุด
พุชก่อนตามด้วยรหัสย่อยจนกว่าจะได้รายการทั้งลำดับชั้น
ประมวลผลแล้ว
เมธอด getIds()
จะยอมรับจุดเช็คพอยท์ที่แสดงรายการสุดท้ายที่จะ
จัดทำดัชนีแล้ว คุณใช้จุดตรวจสอบเพื่อดำเนินการจัดทำดัชนีต่อได้ตามรายการที่เจาะจง
กระบวนการจะหยุดชะงัก สำหรับแต่ละรายการในที่เก็บ ให้ดำเนินการต่อไปนี้
ขั้นตอนในเมธอด getIds()
:
- รับรหัสรายการแต่ละรายการและค่าแฮชที่เกี่ยวข้องจากที่เก็บ
- จัดคู่รหัสและค่าแฮชแต่ละรายการเป็น
PushItems
- รวม
PushItems
แต่ละรายการเป็นตัววนซ้ำที่แสดงผลโดยgetIds()
วิธี โปรดทราบว่าgetIds()
จะแสดงผลค่าCheckpointCloseableIterable
ซึ่งเป็นการปรับปรุงจากApiOperation
แต่ละออบเจ็กต์ที่แสดงคำขอ API ที่ดำเนินการRepositoryDoc
เช่น พุชรายการไปยังคิว
ข้อมูลโค้ดต่อไปนี้แสดงวิธีรับรหัสสินค้าแต่ละรายการและค่าแฮช และ
ให้แทรกลงใน
PushItems
PushItems
คือ
ApiOperation
คำขอเพื่อพุชรายการไปยังคิวการจัดทำดัชนีของ Cloud Search
ข้อมูลโค้ดต่อไปนี้จะแสดงวิธีใช้
PushItems.Builder
เพื่อรวมรหัสและค่าแฮชไว้ในการพุชเพียงครั้งเดียว
ApiOperation
ระบบจะพุชรายการไปยังคิวการจัดทำดัชนีของ Cloud Search เพื่อประมวลผลต่อไป
ดึงข้อมูลและจัดการแต่ละรายการ
ลบล้าง
getDoc()
เพื่อจัดการแต่ละรายการในคิวการจัดทำดัชนีของ Cloud Search
รายการอาจเป็นรายการใหม่ แก้ไข ไม่เปลี่ยนแปลง หรือไม่มีอยู่ในแหล่งที่มาอีกต่อไป
ที่เก็บได้ ดึงข้อมูลและจัดทำดัชนีแต่ละรายการที่เป็นรายการใหม่หรือที่มีการแก้ไข นำรายการออก
จากดัชนีที่ไม่มีอยู่ในที่เก็บต้นทางอีกต่อไป
เมธอด getDoc()
ยอมรับรายการจากการจัดทำดัชนีของ Cloud Search
คิว สำหรับแต่ละรายการในคิว ให้ทำตามขั้นตอนเหล่านี้ใน
เมธอด getDoc()
:
ตรวจสอบว่ารหัสของรายการดังกล่าวภายในคิวการจัดทำดัชนีของ Cloud Search มีอยู่ใน ที่เก็บได้ หากไม่ ให้ลบรายการออกจากดัชนี หากมีรายการดังกล่าวอยู่ ทำต่อในขั้นตอนถัดไป
ดัชนีมีการเปลี่ยนแปลงหรือรายการใหม่:
- ตั้งค่าสิทธิ์
- ตั้งค่าข้อมูลเมตาสำหรับรายการที่คุณกำลังจัดทำดัชนี
- รวมข้อมูลเมตาและรายการให้เป็นรายการเดียวที่จัดทำดัชนีได้
RepositoryDoc
- วางรหัสย่อยในคิวการจัดทำดัชนีของ Cloud Search เพื่อประมวลผลเพิ่มเติม
- ส่งคืน
RepositoryDoc
จัดการรายการที่ลบไปแล้ว
ข้อมูลโค้ดต่อไปนี้แสดงวิธีตรวจสอบว่ามีรายการอยู่ในดัชนีหรือไม่ แต่ไม่ลบทิ้ง
ตั้งค่าสิทธิ์สำหรับรายการ
ที่เก็บของคุณใช้รายการควบคุมการเข้าถึง (ACL) เพื่อระบุผู้ใช้หรือ กลุ่มที่มีสิทธิ์เข้าถึงรายการหนึ่งๆ ACL คือรายการรหัสของกลุ่มหรือผู้ใช้ ที่สามารถเข้าถึงสิ่งนั้นได้
คุณต้องทำสำเนา ACL ที่ที่เก็บของคุณใช้เพื่อให้แน่ใจว่าเฉพาะผู้ใช้เหล่านั้น ที่มีสิทธิ์เข้าถึงรายการ สามารถดูรายการนั้นในผลการค้นหา ต้องระบุ ACL ของรายการเมื่อจัดทำดัชนีรายการเพื่อให้ Google Cloud Search มีข้อมูลที่จำเป็นในการให้ระดับการเข้าถึงที่ถูกต้อง ให้รายการนั้น
Content Connector SDK มีชุดคลาสและเมธอดของ ACL แบบสมบูรณ์ในการ สร้างแบบจำลอง ACL ของที่เก็บส่วนใหญ่ คุณต้องวิเคราะห์ ACL สำหรับแต่ละรายการใน และสร้าง ACL ที่ตรงกันสำหรับ Google Cloud Search เมื่อคุณ จัดทำดัชนีรายการ หาก ACL ของที่เก็บใช้แนวคิด เช่น ACL การสืบทอดค่า การสร้างโมเดลที่ ACL อาจเป็นเรื่องยาก หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับ Google ACL ของ Cloud Search อ้างอิงถึง ACL ของ Google Cloud Search
หมายเหตุ: Cloud Search Indexing API รองรับ ACL แบบโดเมนเดียว แต่ไม่
สนับสนุน ACL ข้ามโดเมน ใช้เมนู
Acl.Builder
เพื่อตั้งค่าการเข้าถึงแต่ละรายการโดยใช้ ACL ข้อมูลโค้ดต่อไปนี้ใช้
จากตัวอย่างการส่งผ่านแบบสมบูรณ์
ผู้ใช้ทั้งหมดหรือ "ผู้ใช้หลัก"
(getCustomerPrincipal()
)
เป็น "ผู้อ่าน" รายการทั้งหมด
(.setReaders()
)
เมื่อทำการค้นหา
คุณต้องทำความเข้าใจ ACL เพื่อสร้างโมเดล ACL สำหรับที่เก็บอย่างถูกต้อง สำหรับ เช่น คุณอาจกำลังจัดทำดัชนีไฟล์ภายในระบบไฟล์ที่ ใช้โมเดลการรับค่าบางประเภทซึ่งโฟลเดอร์ย่อยจะรับค่าสิทธิ์ จากโฟลเดอร์หลัก การรับช่วงค่า ACL ของการสร้างโมเดลต้องใช้ข้อมูลเพิ่มเติม ครอบคลุมใน ACL ของ Google Cloud Search
ตั้งค่าข้อมูลเมตาสำหรับรายการ
ระบบจะจัดเก็บข้อมูลเมตาไว้ในออบเจ็กต์ Item
หากต้องการสร้างItem
คุณต้องมี
รหัสสตริง, ประเภทรายการ, ACL, URL และเวอร์ชันขั้นต่ำของรายการนั้นๆ
ข้อมูลโค้ดต่อไปนี้แสดงวิธีสร้าง Item
โดยใช้
IndexingItemBuilder
ผู้ช่วยของเรา
สร้างรายการที่จัดทำดัชนีได้
เมื่อคุณกำหนดข้อมูลเมตาสำหรับรายการแล้ว คุณสามารถสร้าง
จริงที่จัดทำดัชนีได้
โดยใช้
RepositoryDoc.Builder
ตัวอย่างต่อไปนี้แสดงวิธีสร้างรายการเดี่ยวที่จัดทำดัชนีได้
RepositoryDoc
เป็น ApiOperation
ประเภทหนึ่งที่ดำเนินการ
คำขอ IndexingService.indexItem()
คุณยังสามารถใช้
setRequestMode()
ของเมธอด
RepositoryDoc.Builder
ประเภทที่จะระบุคำขอให้จัดทำดัชนีเป็น ASYNCHRONOUS
หรือ SYNCHRONOUS
:
ASYNCHRONOUS
- โหมดอะซิงโครนัสทำให้เวลาในการตอบสนองนานขึ้นสำหรับการจัดทําดัชนีเพื่อแสดงและ รองรับโควต้าอัตราการส่งข้อมูลขนาดใหญ่สำหรับคำขอจัดทำดัชนี โหมดอะซิงโครนัสคือ แนะนำสำหรับการจัดทำดัชนีเริ่มต้น (โฆษณาทดแทน) ของที่เก็บทั้งหมด
SYNCHRONOUS
- โหมดซิงโครนัสทำให้เวลาในการตอบสนองสำหรับการจัดทำดัชนีเพื่อแสดงให้สั้นลง และ
รองรับโควต้าอัตราการส่งข้อมูลที่จำกัด โหมดซิงโครนัสคือ
แนะนำสำหรับการจัดทำดัชนีการอัปเดตและการเปลี่ยนแปลงที่เก็บ ถ้า
ไม่ได้ระบุ โหมดคำขอจะมีค่าเริ่มต้นเป็น
SYNCHRONOUS
วางรหัสย่อยในคิวการจัดทำดัชนีของ Cloud Search
ข้อมูลโค้ดต่อไปนี้จะแสดงวิธีรวมรหัสย่อย กำลังประมวลผลรายการระดับบนสุด ลงในคิวสำหรับการประมวลผล รหัสเหล่านี้ จะได้รับการประมวลผลหลังจากจัดทำดัชนีรายการระดับบนสุดแล้ว
ขั้นตอนถัดไป
ขั้นตอนถัดไปที่คุณทำได้มีดังนี้
- (ไม่บังคับ) ใช้
close()
ปล่อยทรัพยากรก่อนปิดเครื่อง - (ไม่บังคับ) สร้างเครื่องมือเชื่อมต่อข้อมูลประจำตัว โดยใช้ Identity Connector SDK
สร้างเครื่องมือเชื่อมต่อเนื้อหาโดยใช้ REST API
ส่วนต่อไปนี้จะอธิบายวิธีสร้างเครื่องมือเชื่อมต่อเนื้อหาโดยใช้ REST API
กำหนดกลยุทธ์การข้ามผ่าน
ฟังก์ชันหลักของเครื่องมือเชื่อมต่อเนื้อหาคือข้ามผ่านที่เก็บข้อมูลและ จัดทำดัชนีข้อมูล คุณต้องใช้กลยุทธ์การส่งผ่านโดยพิจารณาจากขนาดและ เค้าโครงของข้อมูลในที่เก็บของคุณ ต่อไปนี้คือการส่งผ่านทั่วไป 3 แบบ กลยุทธ์ต่อไปนี้
- กลยุทธ์การข้ามผ่านเต็มรูปแบบ
กลยุทธ์การข้ามผ่านแบบเต็มรูปแบบจะสแกนที่เก็บทั้งหมดและจัดทำดัชนีแบบไม่เปิดเผย ทุกรายการ กลยุทธ์นี้มักจะใช้เมื่อคุณมีที่เก็บขนาดเล็กและ มีค่าใช้จ่ายในการดำเนินการข้ามผ่านโดยสมบูรณ์ทุกครั้งที่คุณจัดทำดัชนี
กลยุทธ์การข้ามผ่านนี้เหมาะสำหรับที่เก็บขนาดเล็กที่มี ข้อมูลคงที่ ข้อมูลที่ไม่ใช่แบบลำดับชั้น คุณอาจใช้กลยุทธ์การส่งผ่านนี้ได้ด้วย เมื่อการตรวจหาการเปลี่ยนแปลงทำได้ยากหรือที่เก็บไม่รองรับ
- กลยุทธ์การส่งผ่านรายการ
กลยุทธ์การข้ามผ่านรายการจะสแกนที่เก็บทั้งหมด รวมถึงที่เก็บย่อยทั้งหมด โหนดเพื่อระบุสถานะของแต่ละรายการ จากนั้น เครื่องมือเชื่อมต่อจะใช้เวลาสักครู่ ผ่านและจัดทำดัชนีเฉพาะรายการใหม่หรือมีการอัปเดตตั้งแต่ครั้งล่าสุด การจัดทำดัชนี กลยุทธ์นี้มักจะใช้เพื่อเพิ่ม การอัปเดตดัชนีที่มีอยู่ (แทนที่จะต้องทำการส่งผ่านโดยสมบูรณ์ทุก ทุกครั้งที่คุณอัปเดตดัชนี)
กลยุทธ์การข้ามผ่านนี้เหมาะสำหรับกรณีที่การตรวจหาการเปลี่ยนแปลงทำได้ยาก หรือ ที่จัดเก็บไม่ได้รับการสนับสนุน โดยคุณจะมีข้อมูลที่ไม่ใช่ลำดับชั้น และ การทำงานกับชุดข้อมูลขนาดใหญ่มาก
- การส่งผ่านกราฟ
กลยุทธ์การข้ามผ่านกราฟจะสแกนโหนดระดับบนสุดทั้งหมดที่ระบุ สถานะของสินค้าแต่ละรายการ จากนั้น เครื่องมือเชื่อมต่อจะรับการส่งครั้งที่ 2 และดัชนีเท่านั้น รายการในโหนดรากเป็นรายการใหม่หรือได้รับการอัปเดตแล้วตั้งแต่การจัดทำดัชนีครั้งล่าสุด สุดท้าย เครื่องมือเชื่อมต่อจะส่งรหัสย่อยแล้วจัดทำดัชนีรายการในโหนดย่อย ใหม่หรือได้รับการอัปเดตแล้ว ตัวเชื่อมจะค่อยๆ สิ้นสุดไปเรื่อยๆ ผ่าน โหนดย่อยทั้งหมดจนกว่าจะจัดการได้ครบทั้งหมด โดยปกติการส่งผ่านดังกล่าว ใช้สำหรับที่เก็บแบบลำดับชั้นที่ไม่ได้แสดงรายการรหัสทั้งหมด ใช้ได้จริง
กลยุทธ์นี้เหมาะสำหรับคุณมีข้อมูลตามลำดับชั้นที่จำเป็นต้องมี ที่มีการรวบรวมข้อมูล เช่น ไดเรกทอรีซีรีส์หรือหน้าเว็บ
ใช้กลยุทธ์การส่งผ่านและรายการดัชนี
ทุกองค์ประกอบที่จัดทำดัชนีได้สำหรับ Cloud Search จะเรียกว่ารายการใน Cloud Search API รายการอาจเป็นไฟล์ โฟลเดอร์ บรรทัดในไฟล์ CSV หรือ ระเบียนฐานข้อมูล
เมื่อลงทะเบียนสคีมาแล้ว คุณจะป้อนข้อมูลดัชนีได้โดยทำดังนี้
(ไม่บังคับ) การใช้
items.upload
อัปโหลดไฟล์ที่มีขนาดใหญ่กว่า 100KiB เพื่อจัดทำดัชนี สำหรับไฟล์ขนาดเล็ก ให้ฝังเนื้อหาเป็น inlineContent โดยใช้items.index
(ไม่บังคับ) การใช้
media.upload
อัปโหลดไฟล์สื่อเพื่อจัดทำดัชนีกำลังใช้
items.index
เพื่อจัดทำดัชนีรายการ ตัวอย่างเช่น หากสคีมาใช้การกำหนดออบเจ็กต์ในภาพยนตร์ สคีมา ซึ่งเป็นคำขอการจัดทำดัชนีสำหรับ รายการจะมีลักษณะดังนี้{ "name": "datasource/<data_source_id>/items/titanic", "acl": { "readers": [ { "gsuitePrincipal": { "gsuiteDomain": true } } ] }, "metadata": { "title": "Titanic", "viewUrl": "http://www.imdb.com/title/tt2234155/?ref_=nv_sr_1", "objectType": "movie" }, "structuredData": { "object": { "properties": [ { "name": "movieTitle", "textValues": { "values": [ "Titanic" ] } }, { "name": "releaseDate", "dateValues": { "values": [ { "year": 1997, "month": 12, "day": 19 } ] } }, { "name": "actorName", "textValues": { "values": [ "Leonardo DiCaprio", "Kate Winslet", "Billy Zane" ] } }, { "name": "genre", "enumValues": { "values": [ "Drama", "Action" ] } }, { "name": "userRating", "integerValues": { "values": [ 8 ] } }, { "name": "mpaaRating", "textValues": { "values": [ "PG-13" ] } }, { "name": "duration", "textValues": { "values": [ "3 h 14 min" ] } } ] } }, "content": { "inlineContent": "A seventeen-year-old aristocrat falls in love with a kind but poor artist aboard the luxurious, ill-fated R.M.S. Titanic.", "contentFormat": "TEXT" }, "version": "01", "itemType": "CONTENT_ITEM" }
(ไม่บังคับ) การใช้ items.get การโทรเพื่อยืนยันรายการ ได้รับการจัดทำดัชนีแล้ว
ในการดำเนินการข้ามผ่านโดยสมบูรณ์ คุณจะต้องจัดทำดัชนีทั้งหมดอีกครั้ง ที่เก็บได้ หากต้องการดำเนินการข้ามผ่านรายการหรือกราฟ คุณจำเป็นต้องใช้ เพื่อจัดการการเปลี่ยนแปลงที่เก็บ
จัดการการเปลี่ยนแปลงที่เก็บ
คุณจะรวบรวมและจัดทำดัชนีแต่ละรายการจากที่เก็บเป็นระยะๆ เพื่อดำเนินการ การจัดทําดัชนีเต็มรูปแบบ ขณะที่มีประสิทธิภาพในการทำให้ดัชนีของคุณ เป็นปัจจุบัน แต่ การจัดทำดัชนีอาจมีค่าใช้จ่ายสูงเมื่อจัดการกับที่เก็บขนาดใหญ่หรือที่เก็บแบบลำดับชั้น
แทนที่จะใช้การเรียกดัชนี เพื่อจัดทำดัชนีที่เก็บทั้งหมดเป็นประจำ คุณ คุณสามารถใช้คิวการจัดทำดัชนีของ Google Cloud ได้ เป็นกลไกในการติดตามการเปลี่ยนแปลง และจัดทำดัชนีเฉพาะรายการที่มี มีการเปลี่ยนแปลง คุณสามารถใช้ items.push ที่จะพุชรายการเข้าไปในคิวเพื่อการสำรวจและการอัปเดตในภายหลัง สำหรับข้อมูลเพิ่มเติม ข้อมูลเกี่ยวกับคิวการจัดทำดัชนีของ Google Cloud ได้ที่ คิวการจัดทำดัชนีของ Google Cloud
ดูข้อมูลเพิ่มเติมเกี่ยวกับ Google Cloud Search API ได้ที่ Cloud Search API