เครื่องมือเชื่อมต่อเนื้อหาคือโปรแกรมซอฟต์แวร์ที่สำรวจข้อมูลใน ที่เก็บข้อมูลขององค์กรและสร้างแหล่งข้อมูล Google มี ตัวเลือกต่อไปนี้สำหรับการพัฒนาตัวเชื่อมต่อเนื้อหา
SDK ของ Content Connector ตัวเลือกนี้เหมาะสำหรับโปรแกรมเมอร์ Java SDK เป็น Wrapper รอบ REST API ที่ช่วยให้คุณสร้างเครื่องมือเชื่อมต่อได้อย่างรวดเร็ว หากต้องการ สร้างเครื่องมือเชื่อมต่อเนื้อหาโดยใช้ SDK โปรดดู สร้างเครื่องมือเชื่อมต่อเนื้อหาโดยใช้ Content Connector SDK
REST API หรือไลบรารี API ระดับต่ำ ใช้ตัวเลือกเหล่านี้หากคุณไม่ได้ใช้ Java หรือหากโค้ดเบสของคุณรองรับ REST API หรือไลบรารีได้ดีกว่า หากต้องการ สร้างเครื่องมือเชื่อมต่อเนื้อหาโดยใช้ REST API โปรดดูสร้างเครื่องมือเชื่อมต่อเนื้อหาโดยใช้ REST API
โดยทั่วไปแล้ว ตัวเชื่อมต่อเนื้อหาจะทำงานต่อไปนี้
- อ่านและประมวลผลพารามิเตอร์การกำหนดค่า
- ดึงข้อมูลที่จัดทำดัชนีได้ซึ่งแบ่งเป็นส่วนๆ ที่เรียกว่า "รายการ" จากที่เก็บของบุคคลที่สาม
- รวม ACL, ข้อมูลเมตา และข้อมูลเนื้อหาไว้ในรายการที่จัดทำดัชนีได้
- จัดทำดัชนีรายการไปยังแหล่งข้อมูล Cloud Search
- (ไม่บังคับ) ฟังการแจ้งเตือนการเปลี่ยนแปลงจากที่เก็บ การแจ้งเตือนการเปลี่ยนแปลงจะเปลี่ยนเป็นคำขอจัดทำดัชนีเพื่อให้แหล่งข้อมูล Cloud Search ซิงค์อยู่เสมอ ตัวเชื่อมต่อจะดำเนินการ งานนี้เฉพาะในกรณีที่ที่เก็บรองรับการตรวจหาการเปลี่ยนแปลง
สร้างเครื่องมือเชื่อมต่อเนื้อหาโดยใช้ Content Connector SDK
ส่วนต่อไปนี้จะอธิบายวิธีสร้างตัวเชื่อมต่อเนื้อหาโดยใช้ Content Connector SDK
ตั้งค่าทรัพยากร Dependency
รวมทรัพยากร Dependency เหล่านี้ไว้ในไฟล์บิลด์
Maven
xml
<dependency>
<groupId>com.google.enterprise.cloudsearch</groupId>
<artifactId>google-cloudsearch-indexing-connector-sdk</artifactId>
<version>v1-0.0.3</version>
</dependency>
Gradle
groovy
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 จัดหาให้สำหรับเครื่องมือเชื่อมต่อทั้งหมด คุณต้องประกาศสิ่งต่อไปนี้ในไฟล์การกำหนดค่า
- โปรแกรมเชื่อมต่อเนื้อหา: ประกาศ
api.sourceIdและapi.serviceAccountPrivateKeyFileซึ่งจะระบุที่เก็บและ คีย์ส่วนตัวที่จำเป็นสำหรับการเข้าถึง
- โปรแกรมเชื่อมต่อข้อมูลประจำตัว: ประกาศ
api.identitySourceIdเพื่อระบุแหล่งที่มาของข้อมูลประจำตัวภายนอก สำหรับการซิงค์ผู้ใช้ ให้ประกาศapi.customerId(รหัสที่ไม่ซ้ำสำหรับบัญชี Google Workspace) ด้วย
ประกาศพารามิเตอร์อื่นๆ ที่ Google จัดหาให้เมื่อต้องการลบล้างค่าเริ่มต้นเท่านั้น โปรดดูรายละเอียดเกี่ยวกับการสร้างรหัสและคีย์ที่ พารามิเตอร์ที่ Google จัดหาให้
นอกจากนี้ คุณยังกำหนดพารามิเตอร์เฉพาะที่เก็บในไฟล์กำหนดค่าได้ด้วย
ส่งไฟล์การกำหนดค่าไปยังตัวเชื่อมต่อ
ตั้งค่าพร็อพเพอร์ตี้ระบบ config เพื่อส่งไฟล์การกำหนดค่า ใช้-D
อาร์กิวเมนต์เมื่อเริ่มตัวเชื่อมต่อ เช่น
java -classpath myconnector.jar -Dconfig=MyConfig.properties MyConnector
หากไม่ระบุอาร์กิวเมนต์นี้ SDK จะพยายามใช้ไฟล์ชื่อ
connector-config.properties ในไดเรกทอรีภายใน
กำหนดกลยุทธ์การไปยังส่วนต่างๆ
หน้าที่หลักของตัวเชื่อมต่อเนื้อหาคือการสำรวจที่เก็บและ จัดทำดัชนีข้อมูล คุณต้องใช้กลยุทธ์ตามขนาดและเลย์เอาต์ของที่เก็บ คุณออกแบบเองหรือเลือกกลยุทธ์จาก SDK ก็ได้
- กลยุทธ์การสำรวจแบบเต็ม
- สแกนที่เก็บข้อมูลทั้งหมดและจัดทำดัชนีทุกรายการ กลยุทธ์นี้เหมาะที่สุดสำหรับ ที่เก็บขนาดเล็กซึ่งคุณสามารถรับภาระค่าใช้จ่ายของการสำรวจแบบเต็มได้ในระหว่าง การจัดทำดัชนีแต่ละครั้ง ใช้สำหรับที่เก็บขนาดเล็กที่มีข้อมูลส่วนใหญ่เป็นแบบคงที่ แบบไม่เป็นลำดับชั้น หรือเมื่อตรวจหาการเปลี่ยนแปลงได้ยาก
- กลยุทธ์การข้ามรายการ
- สแกนที่เก็บทั้งหมดเพื่อกำหนดสถานะของแต่ละรายการ จากนั้น จะจัดทำดัชนีเฉพาะรายการใหม่หรือรายการที่อัปเดต ใช้สำหรับอัปเดตแบบเพิ่มทีละรายการในดัชนีขนาดใหญ่แบบไม่เป็นลำดับชั้นเมื่อไม่รองรับการตรวจหาการเปลี่ยนแปลง
- การสำรวจกราฟ
- สแกนโหนดหลักเพื่อกำหนดสถานะของรายการในโหนดนั้น จากนั้นจึงจัดทำดัชนีรายการใหม่หรือ อัปเดตในโหนดนั้น จากนั้นจะประมวลผลโหนดย่อยแบบเรียกซ้ำ ใช้ คำสั่งนี้สำหรับที่เก็บแบบลำดับชั้นซึ่งการแสดงรหัสทั้งหมดไม่สามารถทำได้ เช่น โครงสร้างไดเรกทอรีหรือเว็บไซต์
SDK จะใช้กลยุทธ์เหล่านี้ในคลาสเครื่องมือเชื่อมต่อเทมเพลต เทมเพลตเหล่านี้จะช่วยเร่งการพัฒนาของคุณ หากต้องการใช้เทมเพลต โปรดดูส่วนที่เกี่ยวข้อง
- สร้างตัวเชื่อมต่อการข้ามทั้งหมดโดยใช้คลาสเทมเพลต
- สร้างตัวเชื่อมต่อการข้ามรายการโดยใช้คลาสเทมเพลต
- สร้างตัวเชื่อมต่อการสำรวจกราฟโดยใช้คลาสเทมเพลต
สร้างตัวเชื่อมต่อการไปยังทุกรายการโดยใช้คลาสเทมเพลต
ส่วนนี้อ้างอิงถึงโค้ดจาก FullTraversalSample
ใช้จุดแรกเข้าของเครื่องมือเชื่อมต่อ
จุดแรกเข้าคือเมธอด main() โดยจะสร้างอินสแตนซ์ Application
และเรียกใช้ start()
เพื่อเรียกใช้เครื่องมือเชื่อมต่อ
ก่อนเรียกใช้ application.start() ให้ใช้คลาส
IndexingApplication.Builder
เพื่อสร้างอินสแตนซ์ของเทมเพลต
FullTraversalConnector
เทมเพลตนี้ยอมรับออบเจ็กต์
Repository
SDK จะเรียกใช้ initConfig() หลังจากที่เมธอด main() เรียกใช้
Application.build() initConfig() วิธี
- ตรวจสอบว่า
Configurationยังไม่ได้เริ่มต้น - เริ่มต้นออบเจ็กต์
Configurationด้วยคู่คีย์-ค่าที่ Google จัดหาให้
ใช้การติดตั้งใช้งานอินเทอร์เฟซที่เก็บ
ออบเจ็กต์ Repository จะข้ามและจัดทำดัชนีรายการที่เก็บ เมื่อใช้เทมเพลต คุณจะต้องลบล้างเมธอดบางอย่างในอินเทอร์เฟซ Repository
เท่านั้น สำหรับ FullTraversalConnector ให้ลบล้างดังนี้
init(): สำหรับการตั้งค่าและเริ่มต้นที่เก็บgetAllDocs(): เพื่อไปยังและจัดทำดัชนีรายการทั้งหมด โดยจะเรียกใช้ 1 ครั้งสำหรับการข้ามแต่ละครั้งที่กำหนดเวลาไว้- (ไม่บังคับ)
getChanges(): หากที่เก็บรองรับการตรวจหาการเปลี่ยนแปลง ให้ลบล้างการตั้งค่านี้เพื่อเรียกและ จัดทำดัชนีรายการที่แก้ไข - (ไม่บังคับ)
close(): สำหรับการล้างข้อมูลที่เก็บระหว่างการปิดระบบ
แต่ละเมธอดจะแสดงออบเจ็กต์
ApiOperation
ซึ่งทําการจัดทําดัชนีโดยใช้ IndexingService.indexItem()
รับพารามิเตอร์การกำหนดค่าที่กำหนดเอง
หากต้องการจัดการการกำหนดค่าของตัวเชื่อมต่อ คุณต้องดึงพารามิเตอร์ที่กำหนดเองจากออบเจ็กต์ Configuration
ทำตามขั้นตอนในวิธีของ
Repository
ชั้นเรียน
init()
Configuration คลาสมีเมธอดในการดึงข้อมูลประเภทต่างๆ
แต่ละเมธอดจะแสดงผลออบเจ็กต์ ConfigValue ใช้เมธอด
get()
ของออบเจ็กต์ ConfigValue เพื่อดึงค่า ข้อมูลโค้ดนี้จาก
FullTraversalSample
แสดงวิธีดึงค่าจำนวนเต็มที่กำหนดเอง
หากต้องการดึงและแยกวิเคราะห์พารามิเตอร์ที่มีหลายค่า ให้ใช้เครื่องมือแยกวิเคราะห์ประเภทของคลาส Configuration ข้อมูลโค้ดนี้จากตัวเชื่อมต่อบทแนะนำ
ใช้
getMultiValue
เพื่อดึงรายการชื่อที่เก็บ GitHub
ทำการสำรวจแบบเต็ม
แทนที่ getAllDocs() เพื่อทำการสำรวจแบบเต็ม เมธอดนี้ยอมรับ
จุดตรวจสอบเพื่อดำเนินการจัดทำดัชนีต่อหากถูกขัดจังหวะ สำหรับแต่ละรายการ
- ตั้งค่าสิทธิ์
- ตั้งค่าข้อมูลเมตา
- รวมเป็น
RepositoryDoc - แพ็กเกจแต่ละรายการลงในตัววนซ้ำที่
getAllDocs()ส่งคืน
หากชุดสินค้ามีขนาดใหญ่เกินกว่าจะเรียกใช้ได้ในการเรียกครั้งเดียว ให้ใช้จุดตรวจสอบและเรียกใช้
hasMore(true)
ตั้งค่าสิทธิ์สำหรับรายการ
ที่เก็บใช้รายการควบคุมการเข้าถึง (ACL) เพื่อระบุผู้ใช้หรือกลุ่มที่มี สิทธิ์เข้าถึงรายการ ACL จะแสดงรายการรหัสของผู้ใช้หรือกลุ่มที่ได้รับอนุญาต
หากต้องการให้ผู้ใช้เห็นเฉพาะผลการค้นหาที่ได้รับอนุญาตให้เข้าถึง คุณต้องทำซ้ำ ACL ของที่เก็บ รวม ACL เมื่อจัดทำดัชนีรายการเพื่อให้ Google Cloud Search ระบุระดับการเข้าถึงที่ถูกต้องได้
SDK ตัวเชื่อมต่อเนื้อหามีคลาสและเมธอดในการสร้างโมเดล ACL ของ ที่เก็บข้อมูลส่วนใหญ่ วิเคราะห์ ACL ของที่เก็บและสร้าง ACL ที่เกี่ยวข้อง สำหรับ Cloud Search ในระหว่างการจัดทำดัชนี การสร้าง ACL ที่ซับซ้อน เช่น ACL ที่ใช้การรับค่า ต้องมีการวางแผนอย่างรอบคอบ ดูข้อมูลเพิ่มเติมได้ที่ ACL ของ Cloud Search
ใช้คลาส
Acl.Builder
เพื่อตั้งค่าการเข้าถึง ข้อมูลโค้ดนี้จากตัวอย่างการข้ามทั้งหมดช่วยให้ผู้ใช้ในโดเมนทั้งหมด (getCustomerPrincipal()) อ่านรายการทั้งหมด (setReaders()) ได้
การสร้าง ACL ของที่เก็บอย่างเหมาะสม โดยเฉพาะ ACL ที่ใช้โมเดลการรับค่า ต้องใช้ข้อมูลใน ACL ของ Cloud Search
ตั้งค่าข้อมูลเมตาสำหรับรายการ
ระบบจะจัดเก็บข้อมูลเมตาไว้ในออบเจ็กต์ Item หากต้องการสร้าง Item คุณต้องมี
ID, ประเภทรายการ, ACL, URL และเวอร์ชันที่ไม่ซ้ำกัน ใช้คลาสตัวช่วย
IndexingItemBuilder
สร้างรายการที่จัดทำดัชนีได้
ใช้
RepositoryDoc.Builder
ชั้นเรียน
RepositoryDoc คือ ApiOperation ที่ดำเนินการIndexingService.indexItem() คำขอ
ใช้เมธอด
setRequestMode()
ของคลาส RepositoryDoc.Builder เพื่อตั้งค่าคำขอจัดทำดัชนีเป็น
ASYNCHRONOUS หรือ SYNCHRONOUS ดังนี้
ASYNCHRONOUS- โหมดนี้มีเวลาในการตอบสนองตั้งแต่การจัดทำดัชนีจนถึงการแสดงผลนานกว่า แต่มีโควต้า อัตราการรับส่งข้อมูลที่มากกว่า ใช้โหมดไม่พร้อมกันสำหรับการจัดทำดัชนีเริ่มต้น (การเติมข้อมูล) ของ ที่เก็บข้อมูลทั้งหมด
SYNCHRONOUS- โหมดนี้มีเวลาในการตอบสนองจากการจัดทำดัชนีจนถึงการแสดงผลที่สั้นกว่า แต่มีโควต้า
อัตราการรับส่งข้อมูลน้อยกว่า ใช้โหมดพร้อมกันสำหรับการอัปเดตและการเปลี่ยนแปลงที่เก็บข้อมูลการจัดทำดัชนี โหมดคำขอ
จะเป็น
SYNCHRONOUSโดยค่าเริ่มต้น หากไม่ได้ระบุไว้
แพ็กเกจแต่ละรายการที่จัดทำดัชนีได้ในตัววนซ้ำ
เมธอด getAllDocs() จะแสดงผล
CheckpointCloseableIterable
ของออบเจ็กต์ RepositoryDoc ใช้
CheckpointCloseableIterableImpl.Builder
ชั้นเรียน
ขั้นตอนถัดไป
- (ไม่บังคับ) หากปริมาณงานการจัดทำดัชนีช้า ให้ดูเพิ่มอัตราการจัดทำดัชนี
- (ไม่บังคับ) ใช้
close()เพื่อปล่อยทรัพยากร - (ไม่บังคับ) สร้างโปรแกรมเชื่อมต่อข้อมูลประจำตัว
สร้างตัวเชื่อมต่อการข้ามรายการโดยใช้คลาสเทมเพลต
คิวการจัดทำดัชนีของ Cloud Search จะเก็บรหัสและแฮชที่ไม่บังคับสำหรับ รายการในที่เก็บ เครื่องมือเชื่อมต่อการข้ามรายการจะพุชรหัสไปยังคิวนี้และ ดึงข้อมูลเหล่านั้นเพื่อจัดทำดัชนี Cloud Search จะดูแลคิวเหล่านี้ เพื่อกำหนดสถานะของรายการ เช่น การลบ ดู คิวการจัดทำดัชนีของ Cloud Search
ส่วนนี้อ้างอิงถึง ListTraversalSample
ใช้จุดแรกเข้าของเครื่องมือเชื่อมต่อ
main() เมธอดจะสร้างอินสแตนซ์ Application และเรียกใช้ start() ใช้
IndexingApplication.Builder เพื่อสร้างอินสแตนซ์ของ
ListingConnector
เทมเพลต
ใช้การติดตั้งใช้งานอินเทอร์เฟซที่เก็บ
ลบล้างเมธอดต่อไปนี้สำหรับ ListingConnector
init(): สำหรับการตั้งค่าที่เก็บgetIds(): หากต้องการดึงรหัสและแฮชสำหรับระเบียนทั้งหมดgetDoc(): หากต้องการเพิ่ม อัปเดต หรือลบรายการออกจากดัชนี- (ไม่บังคับ)
getChanges(): สำหรับการอัปเดตแบบเพิ่มทีละรายการโดยใช้การตรวจหาการเปลี่ยนแปลง - (ไม่บังคับ)
close(): สำหรับการล้างข้อมูลที่เก็บ
ดำเนินการตามรายการ
ลบล้าง getIds() เพื่อดึงข้อมูลรหัสและแฮช แทนที่ getDoc() เพื่อจัดการ
แต่ละรายการในคิวการจัดทำดัชนีของ Cloud Search
ส่งรหัสสินค้าและค่าแฮช
แทนที่ getIds() เพื่อดึงข้อมูลรหัสและแฮชเนื้อหา จัดแพ็กเกจเป็นPushItems
คำขอไปยังคิวการจัดทำดัชนี
ใช้ PushItems.Builder เพื่อจัดแพ็กเกจรหัสและแฮช
เรียกและจัดการแต่ละรายการ
แทนที่ getDoc() เพื่อจัดการรายการในคิวการจัดทำดัชนี รายการอาจเป็นรายการใหม่
มีการแก้ไข ไม่มีการเปลี่ยนแปลง หรือถูกลบ
- ตรวจสอบว่ามีรหัสสินค้าในที่เก็บหรือไม่ หากไม่ถูกต้อง ให้ลบออก
- สำรวจดัชนีเพื่อดูสถานะ หากไม่มีการเปลี่ยนแปลง (
ACCEPTED) ไม่ต้องดำเนินการใดๆ - รายการที่มีการเปลี่ยนแปลงหรือรายการใหม่: ตั้งค่าสิทธิ์ ตั้งค่าข้อมูลเมตา รวมเป็น
RepositoryDocแล้วส่งคืน
จัดการรายการที่ถูกลบ
ข้อมูลโค้ดนี้แสดงวิธีตรวจสอบว่ามีรายการอยู่หรือไม่ และลบรายการหากไม่มี
จัดการรายการที่ไม่เปลี่ยนแปลง
สำรวจคิวการจัดทำดัชนีเพื่อจัดการรายการที่ไม่มีการเปลี่ยนแปลง
ตัวอย่างนี้ใช้แฮชเพื่อตรวจหาการเปลี่ยนแปลง
ตั้งค่าสิทธิ์สำหรับรายการ
ที่เก็บใช้รายการควบคุมการเข้าถึง (ACL) เพื่อระบุผู้ใช้หรือกลุ่มที่มี สิทธิ์เข้าถึงรายการ ACL จะแสดงรายการรหัสของผู้ใช้หรือกลุ่มที่ได้รับอนุญาต
หากต้องการให้ผู้ใช้เห็นเฉพาะผลการค้นหาที่ได้รับอนุญาตให้เข้าถึง คุณต้องทำซ้ำ ACL ของที่เก็บ รวม ACL เมื่อจัดทำดัชนีรายการเพื่อให้ Google Cloud Search ระบุระดับการเข้าถึงที่ถูกต้องได้
SDK ตัวเชื่อมต่อเนื้อหามีคลาสและเมธอดในการสร้างโมเดล ACL ของ ที่เก็บข้อมูลส่วนใหญ่ วิเคราะห์ ACL ของที่เก็บและสร้าง ACL ที่เกี่ยวข้อง สำหรับ Cloud Search ในระหว่างการจัดทำดัชนี การสร้าง ACL ที่ซับซ้อน เช่น ACL ที่ใช้การรับค่า ต้องมีการวางแผนอย่างรอบคอบ ดูข้อมูลเพิ่มเติมได้ที่ ACL ของ Cloud Search
ใช้คลาส
Acl.Builder
เพื่อตั้งค่าการเข้าถึง ข้อมูลโค้ดนี้จากตัวอย่างการข้ามทั้งหมดช่วยให้ผู้ใช้ในโดเมนทั้งหมด (getCustomerPrincipal()) อ่านรายการทั้งหมด (setReaders()) ได้
การสร้าง ACL ของที่เก็บอย่างเหมาะสม โดยเฉพาะอย่างยิ่ง ACL ที่ใช้โมเดลการรับค่า ต้องใช้ข้อมูลใน ACL ของ Cloud Search
ตั้งค่าข้อมูลเมตาสำหรับรายการ
สร้างรายการที่จัดทำดัชนีได้
ใช้เมธอด
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
ในระหว่างการจัดทำดัชนี ระบบจะดึงเนื้อหารายการจากที่เก็บข้อมูลและส่งรหัสรายการย่อยไปยังคิว ตัวเชื่อมต่อจะประมวลผลรหัสระดับบนสุดและรหัสย่อยแบบเรียกซ้ำ จนกว่าจะจัดการรายการทั้งหมด
ใช้จุดแรกเข้าของเครื่องมือเชื่อมต่อ
จุดแรกเข้าของตัวเชื่อมต่อคือเมธอด
main() วิธีนี้จะสร้างอินสแตนซ์ของคลาส
Application
และเรียกใช้เมธอด
start()
เพื่อเรียกใช้เครื่องมือเชื่อมต่อ
ก่อนโทร
application.start()
ให้ใช้คลาส
IndexingApplication.Builder
เพื่อสร้างอินสแตนซ์เทมเพลต ListingConnector ListingConnector
รับออบเจ็กต์
Repository
ที่คุณใช้เมธอด
ใช้การติดตั้งใช้งานอินเทอร์เฟซที่เก็บ
ลบล้าง init(), getIds(), getDoc() และอาจลบล้าง getChanges() หรือ close()
ดำเนินการกราฟ
แทนที่ getIds() เพื่อดึงข้อมูลรหัสเริ่มต้นและ getDoc() เพื่อจัดการรายการและ
ส่งรหัสย่อยไปยังคิว
ส่งรหัสสินค้าและค่าแฮช
เรียกและจัดการแต่ละรายการ
- ตรวจสอบว่ามีรหัสในที่เก็บหรือไม่ หากไม่ต้องการ ให้ลบรายการออก
- สำหรับรายการที่มีอยู่ ให้ตั้งค่าสิทธิ์และข้อมูลเมตา แล้วรวมเข้ากับ
RepositoryDoc - ส่งรหัสย่อยไปยังคิวการจัดทำดัชนี
- คืน
RepositoryDoc
จัดการรายการที่ถูกลบ
ตั้งค่าข้อมูลเมตาและสร้างรายการ
วางรหัสย่อยในคิวการจัดทำดัชนี
สร้างเครื่องมือเชื่อมต่อเนื้อหาโดยใช้ REST API
ส่วนต่อไปนี้จะอธิบายวิธีสร้างตัวเชื่อมต่อเนื้อหาโดยใช้ REST API
กำหนดกลยุทธ์การไปยังส่วนต่างๆ
กลยุทธ์ (เต็ม รายการ และกราฟ) มีแนวคิดเหมือนกับ SDK ใช้กลยุทธ์ที่เลือกโดยใช้ REST API
ใช้กลยุทธ์การสำรวจและจัดทำดัชนีรายการ
ลงทะเบียนสคีมา แล้วป้อนข้อมูลดัชนีโดยใช้
- (ไม่บังคับ)
items.uploadสำหรับไฟล์ที่มีขนาดใหญ่กว่า 100 KiB - (ไม่บังคับ)
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/", "objectType": "movie" }, "structuredData": { "object": { "properties": [ { "name": "movieTitle", "textValues": { "values": ["Titanic"] } } ] } }, "content": { "inlineContent": "A seventeen-year-old aristocrat falls in love...", "contentFormat": "TEXT" }, "version": "01", "itemType": "CONTENT_ITEM" }(ไม่บังคับ) ใช้
items.getเพื่อยืนยันการจัดทำดัชนี
จัดการการเปลี่ยนแปลงที่เก็บ
จัดทำดัชนีที่เก็บทั้งหมดอีกครั้งเป็นระยะๆ เพื่อให้จัดทำดัชนีได้เต็มรูปแบบ สำหรับการข้ามรายการหรือกราฟ ให้ใช้คิวการจัดทำดัชนีของ Google Cloud
เพื่อติดตามการเปลี่ยนแปลงและจัดทำดัชนีเฉพาะสิ่งที่เปลี่ยนแปลง ใช้ items.push เพื่อเพิ่มรายการ
ลงในคิว