หน้าของบทแนะนำ Cloud Search นี้จะแสดงวิธีตั้งค่าแหล่งข้อมูลและเครื่องมือเชื่อมต่อเนื้อหาสำหรับการจัดทำดัชนีข้อมูล หากต้องการเริ่มต้นตั้งแต่ตอนต้นของบทแนะนำนี้ โปรดดูบทแนะนำการเริ่มต้นใช้งาน Cloud Search
สร้างเครื่องมือเชื่อมต่อ
เปลี่ยนไดเรกทอรีการทำงานเป็นไดเรกทอรี cloud-search-samples/end-to-end/connector
แล้วเรียกใช้คำสั่งนี้
mvn package -DskipTests
คำสั่งจะดาวน์โหลดทรัพยากร Dependency ที่จำเป็นสำหรับการสร้างเครื่องมือเชื่อมต่อเนื้อหาและคอมไพล์โค้ด
สร้างข้อมูลเข้าสู่ระบบบัญชีบริการ
เครื่องมือเชื่อมต่อต้องใช้ข้อมูลเข้าสู่ระบบบัญชีบริการเพื่อเรียกใช้ Cloud Search API วิธีสร้างข้อมูลเข้าสู่ระบบ
- กลับไปที่คอนโซล Google Cloud
- คลิกข้อมูลเข้าสู่ระบบที่การนำทางด้านซ้าย หน้า "ข้อมูลเข้าสู่ระบบ" จะปรากฏขึ้น
- คลิกรายการแบบเลื่อนลง + สร้างข้อมูลเข้าสู่ระบบ แล้วเลือกบัญชีบริการ หน้า "สร้างบัญชีบริการ" จะปรากฏขึ้น
- ป้อน "บทแนะนำ" ในช่องชื่อบัญชีบริการ
- จดบันทึกค่ารหัสบัญชีบริการ (ต่อจากชื่อบัญชีบริการ) ระบบจะใช้ค่านี้ในภายหลัง
- คลิกสร้าง กล่องโต้ตอบ "สิทธิ์ของบัญชีบริการ (ไม่บังคับ)" จะปรากฏขึ้น
- คลิกดำเนินการต่อ กล่องโต้ตอบ "ให้สิทธิ์ผู้ใช้เข้าถึงบัญชีบริการนี้ (ไม่บังคับ)" จะปรากฏขึ้น
- คลิกเสร็จสิ้น หน้าจอ "ข้อมูลเข้าสู่ระบบ" จะปรากฏขึ้น
- คลิกอีเมลบัญชีบริการในส่วนบัญชีบริการ หน้า "รายละเอียดบัญชีบริการ"
- ใต้คีย์ ให้คลิกรายการแบบเลื่อนลง ADD KEY แล้วเลือก Create new key (สร้างคีย์ใหม่) กล่องโต้ตอบ "สร้างคีย์ส่วนตัว" จะปรากฏขึ้น
- คลิกสร้าง
- (ไม่บังคับ) หากกล่องโต้ตอบ "คุณต้องการอนุญาตให้ดาวน์โหลดใน console.cloud.google.com ไหม" ปรากฏขึ้น ให้คลิกอนุญาต
- ระบบจะบันทึกไฟล์คีย์ส่วนตัวลงในคอมพิวเตอร์ จดตำแหน่งของไฟล์ที่ดาวน์โหลด ไฟล์นี้ใช้เพื่อกำหนดค่าเครื่องมือเชื่อมต่อเนื้อหาเพื่อให้ตรวจสอบสิทธิ์ตนเองได้เมื่อเรียกใช้ Google Cloud Search API
เริ่มต้นการสนับสนุนของบุคคลที่สาม
ก่อนที่จะเรียกใช้ Cloud Search API อื่นๆ ได้ คุณต้องเริ่มต้นการสนับสนุนของบุคคลที่สามสำหรับ Google Cloud Search
วิธีเริ่มต้นการสนับสนุนบุคคลที่สามสำหรับ Cloud Search
โปรเจ็กต์แพลตฟอร์ม Cloud Search ของคุณมีข้อมูลเข้าสู่ระบบบัญชีบริการ อย่างไรก็ตาม คุณต้องสร้างข้อมูลเข้าสู่ระบบเว็บแอปพลิเคชันเพื่อช่วยในการเริ่มต้นการสนับสนุนของบุคคลที่สาม ดูวิธีสร้างข้อมูลเข้าสู่ระบบเว็บแอปพลิเคชันได้ที่สร้างข้อมูลเข้าสู่ระบบ คุณควรมีรหัสไคลเอ็นต์และไฟล์รหัสลับไคลเอ็นต์เมื่อเสร็จสิ้นขั้นตอนนี้
ใช้สนามเด็กเล่น OAuth 2 ของ Google เพื่อรับโทเค็นเพื่อการเข้าถึง ดังนี้
- คลิกการตั้งค่าและทำเครื่องหมายที่ใช้ข้อมูลเข้าสู่ระบบในการตรวจสอบสิทธิ์ของคุณเอง
- ป้อนรหัสไคลเอ็นต์และรหัสลับไคลเอ็นต์จากขั้นตอนที่ 1
- คลิกปิด
- ในช่องขอบเขต ให้พิมพ์
https://www.googleapis.com/auth/cloud_search.settings
แล้วคลิกให้สิทธิ์ สนามเด็กเล่น OAuth 2 จะแสดงรหัสการให้สิทธิ์ - คลิกรหัสการให้สิทธิ์ของ Exchange สำหรับโทเค็น ระบบจะส่งโทเค็นกลับมา
หากต้องการเริ่มต้นการสนับสนุนของบุคคลที่สามสำหรับ Cloud Search ให้ใช้คำสั่ง curl ต่อไปนี้ อย่าลืมแทนที่
[YOUR_ACCESS_TOKEN]
ด้วยโทเค็นที่ได้ในขั้นตอนที่ 2curl --request POST \ 'https://cloudsearch.googleapis.com/v1:initializeCustomer' \ --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{}' \ --compressed
หากทำสำเร็จ เนื้อหาการตอบกลับจะมีอินสแตนซ์
operation
เช่น{ name: "operations/customers/01b3fqdm/lro/AOIL6eBv7fEfiZ_hUSpm8KQDt1Mnd6dj5Ru3MXf-jri4xK6Pyb2-Lwfn8vQKg74pgxlxjrY" }
หากไม่สำเร็จ โปรดติดต่อทีมสนับสนุนของ Cloud Search
ใช้ operations.get เพื่อยืนยันว่ามีเริ่มต้นการสนับสนุนบุคคลที่สามแล้ว
curl \ 'https://cloudsearch.googleapis.com/v1/operations/customers/01b3fqdm/lro/AOIL6eBv7fEfiZ_hUSpm8KQDt1Mnd6dj5Ru3MXf-jri4xK6Pyb2-Lwfn8vQKg74pgxlxjrY?key= [YOUR_API_KEY]' \ --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \ --header 'Accept: application/json' \ --compressed
เมื่อการเริ่มต้นของบุคคลที่สามเสร็จสมบูรณ์แล้ว จะมีช่อง
done
ที่ตั้งค่าเป็นtrue
เช่น{ name: "operations/customers/01b3fqdm/lro/AOIL6eBv7fEfiZ_hUSpm8KQDt1Mnd6dj5Ru3MXf-jri4xK6Pyb2-Lwfn8vQKg74pgxlxjrY" done: true }
สร้างแหล่งข้อมูล
จากนั้นสร้างแหล่งข้อมูลในคอนโซลผู้ดูแลระบบ แหล่งข้อมูลจะมีเนมสเปซสำหรับการจัดทำดัชนีเนื้อหาโดยใช้เครื่องมือเชื่อมต่อ
- เปิดคอนโซลผู้ดูแลระบบของ Google
- คลิกไอคอน "แอป" หน้า "การดูแลระบบแอป" จะปรากฏขึ้น
- คลิก Google Workspace หน้า "การดูแลระบบ Google Workspace ของแอป" จะปรากฏขึ้น
- เลื่อนลงและคลิก Cloud Search หน้า "การตั้งค่าสำหรับ Google Workspace" จะปรากฏขึ้น
- คลิกแหล่งข้อมูลจากบุคคลที่สาม หน้า "แหล่งข้อมูล" จะปรากฏขึ้น
- คลิกวงกลมสีเหลือง + กล่องโต้ตอบ "เพิ่มแหล่งข้อมูลใหม่" จะปรากฏขึ้น
- พิมพ์ "บทแนะนำ" ในช่องชื่อที่แสดง
- ในช่องอีเมลบัญชีบริการ ให้ป้อนอีเมลของบัญชีบริการที่สร้างไว้ในส่วนก่อนหน้า หากไม่ทราบอีเมลของบัญชีบริการ ให้ดูค่าในหน้าบัญชีบริการ
- คลิกเพิ่ม กล่องโต้ตอบ "สร้างแหล่งข้อมูลเรียบร้อยแล้ว" จะปรากฏขึ้น
- คลิก *ตกลง โปรดจดรหัสแหล่งที่มาของแหล่งข้อมูลที่สร้างขึ้นใหม่ ระบบจะใช้รหัสแหล่งที่มาเพื่อกำหนดค่าเครื่องมือเชื่อมต่อเนื้อหา
สร้างโทเค็นเพื่อการเข้าถึงส่วนบุคคลสำหรับ GitHub API
เครื่องมือเชื่อมต่อต้องมีการตรวจสอบสิทธิ์การเข้าถึง GitHub API เพื่อให้มีโควต้าเพียงพอ เครื่องมือเชื่อมต่อจะใช้ประโยชน์จากโทเค็นเพื่อการเข้าถึงส่วนบุคคลแทน OAuth เพื่อความสะดวก โทเค็นส่วนตัวช่วยให้ตรวจสอบสิทธิ์ในฐานะผู้ใช้ที่มีชุดสิทธิ์จำกัดคล้ายกับ OAuth ได้
- ลงชื่อเข้าสู่ระบบ GitHub
- คลิกรูปโปรไฟล์ที่มุมบนขวา เมนูแบบเลื่อนลงจะปรากฏขึ้น
- คลิกการตั้งค่า
- คลิกการตั้งค่าสำหรับนักพัฒนาซอฟต์แวร์
- คลิกโทเค็นเพื่อการเข้าถึงส่วนบุคคล
- คลิกสร้างโทเค็นเพื่อการเข้าถึงส่วนบุคคล
- ในช่องหมายเหตุ ให้ป้อน "บทแนะนำ Cloud Search"
- ตรวจสอบขอบเขต public_repo
- คลิกสร้างโทเค็น
- จดโทเค็นที่สร้างขึ้น เครื่องมือเชื่อมต่อจะใช้โค้ดนี้เพื่อเรียกใช้ GitHub API และให้โควต้า API สำหรับการจัดทำดัชนี
กำหนดค่าเครื่องมือเชื่อมต่อ
หลังจากสร้างข้อมูลเข้าสู่ระบบและแหล่งข้อมูลแล้ว ให้อัปเดตการกำหนดค่าเครื่องมือเชื่อมต่อให้รวมค่าต่อไปนี้ด้วย
- จากบรรทัดคำสั่ง ให้เปลี่ยนไดเรกทอรีเป็น
cloud-search-samples/end-to-end/connector/
- เปิดไฟล์
sample-config.properties
ด้วยเครื่องมือแก้ไขข้อความ - ตั้งค่าพารามิเตอร์
api.serviceAccountPrivateKeyFile
เป็นเส้นทางไฟล์ของข้อมูลเข้าสู่ระบบบริการที่คุณดาวน์โหลดไว้ก่อนหน้านี้ - ตั้งค่าพารามิเตอร์
api.sourceId
เป็นรหัสของแหล่งข้อมูลที่สร้างไว้ก่อนหน้านี้ - ตั้งค่าพารามิเตอร์
github.user
เป็นชื่อผู้ใช้ GitHub - ตั้งค่าพารามิเตอร์
github.token
เป็นโทเค็นเพื่อการเข้าถึงที่สร้างไว้ก่อนหน้านี้ - บันทึกไฟล์
อัปเดตสคีมา
เครื่องมือเชื่อมต่อจะจัดทำดัชนีทั้งเนื้อหาแบบมีโครงสร้างและไม่มีโครงสร้าง ก่อนที่จะจัดทำดัชนีข้อมูล คุณต้องอัปเดตสคีมาสำหรับแหล่งข้อมูล เรียกใช้คำสั่งต่อไปนี้เพื่ออัปเดตสคีมา
mvn exec:java -Dexec.mainClass=com.google.cloudsearch.tutorial.SchemaTool \
-Dexec.args="-Dconfig=sample-config.properties"
เรียกใช้เครื่องมือเชื่อมต่อ
หากต้องการเรียกใช้เครื่องมือเชื่อมต่อและเริ่มการจัดทำดัชนี ให้เรียกใช้คำสั่งต่อไปนี้
mvn exec:java -Dexec.mainClass=com.google.cloudsearch.tutorial.GithubConnector \
-Dexec.args="-Dconfig=sample-config.properties"
การกำหนดค่าเริ่มต้นสำหรับเครื่องมือเชื่อมต่อคือการจัดทำดัชนีที่เก็บรายการเดียวในองค์กร googleworkspace
การจัดทำดัชนีที่เก็บจะใช้เวลาประมาณ 1 นาที
หลังจากการจัดทำดัชนีเริ่มต้น เครื่องมือเชื่อมต่อจะยังคงสำรวจการเปลี่ยนแปลงที่เก็บซึ่งจำเป็นต้องปรากฏในดัชนี Cloud Search
การตรวจสอบโค้ด
ส่วนที่เหลือจะเป็นการตรวจสอบวิธีสร้างเครื่องมือเชื่อมต่อ
กำลังเริ่มต้นแอปพลิเคชัน
จุดแรกเข้าของเครื่องมือเชื่อมต่อคือคลาส GithubConnector
เมธอด main
จะสร้างอินสแตนซ์ IndexingApplication
ของ SDK และเริ่มต้น
ListingConnector
ที่ SDK จัดเตรียมไว้ให้จะใช้กลยุทธ์การส่งผ่านซึ่งใช้ประโยชน์จากคิวของ Cloud Search ในการติดตามสถานะของรายการในดัชนี โดยจะมอบสิทธิ์ให้ GithubRepository
ซึ่ง
ใช้โดยเครื่องมือเชื่อมต่อตัวอย่าง สำหรับการเข้าถึงเนื้อหาจาก GitHub
การสำรวจที่เก็บ GitHub
ในระหว่างการข้ามผ่านเต็มรูปแบบ ระบบจะเรียกใช้เมธอด getIds()
เพื่อพุชรายการที่อาจต้องจัดทำดัชนีไปยังคิว
เครื่องมือเชื่อมต่อสามารถจัดทำดัชนีที่เก็บหรือองค์กรหลายรายการได้ จะมีการข้ามผ่านที่เก็บ GitHub ทีละ 1 รายการเพื่อลดผลกระทบจากความล้มเหลว จุดตรวจสอบจะถูกแสดงผลพร้อมกับผลลัพธ์ของการข้ามผ่านที่มีรายการของที่เก็บที่จะทำดัชนีในการเรียก getIds()
ที่ตามมา หากเกิดข้อผิดพลาด การจัดทำดัชนีจะดำเนินการต่อที่ที่เก็บปัจจุบันแทนที่จะเริ่มต้นตั้งแต่แรก
เมธอด collectRepositoryItems()
จะจัดการการส่งผ่านของที่เก็บ GitHub เดียว เมธอดนี้จะแสดงคอลเล็กชัน ApiOperations
ที่แสดงถึงรายการที่จะพุชลงในคิว รายการจะพุชเป็นชื่อทรัพยากรและค่าแฮชที่แสดงสถานะปัจจุบันของรายการ
ระบบจะใช้ค่าแฮชในการข้ามผ่านที่เก็บ GitHub ครั้งต่อๆ ไป ค่านี้เป็นการตรวจสอบง่ายๆ เพื่อตัดสินว่าเนื้อหามีการเปลี่ยนแปลงหรือไม่โดยไม่ต้องอัปโหลดเนื้อหาเพิ่มเติม เครื่องมือเชื่อมต่อจะ จัดคิวรายการทั้งหมด หากรายการเป็นค่าใหม่หรือค่าแฮชมีการเปลี่ยนแปลง รายการนั้นจะพร้อมใช้งานสำหรับการหยั่งสัญญาณในคิว มิฉะนั้นจะถือว่ารายการไม่มีการแก้ไข
กำลังประมวลผลคิว
หลังจากการข้ามผ่านทั้งหมดเสร็จสมบูรณ์ เครื่องมือเชื่อมต่อจะเริ่มสำรวจคิวรายการที่ต้องจัดทำดัชนี ระบบจะเรียกใช้เมธอด getDoc()
สำหรับแต่ละรายการที่ดึงมาจากคิว เมธอดจะอ่านรายการจาก GitHub และแปลงเป็นตัวแทนที่เหมาะสมสำหรับการจัดทำดัชนี
เนื่องจากเครื่องมือเชื่อมต่อกำลังทำงานกับข้อมูลจริงที่อาจมีการเปลี่ยนแปลงได้ตลอดเวลา getDoc()
จะตรวจสอบว่ารายการในคิวยังคงใช้งานได้อยู่และจะลบรายการใดๆ ออกจากดัชนีที่ไม่มีอยู่แล้ว
สำหรับออบเจ็กต์ GitHub แต่ละรายการที่เครื่องมือเชื่อมต่อจัดทำดัชนี เมธอด indexItem()
ที่เกี่ยวข้องจะจัดการการสร้างการนำเสนอรายการสำหรับ Cloud Search ตัวอย่างเช่น หากต้องการสร้างตัวแทนสำหรับรายการเนื้อหา ให้ทำดังนี้
ต่อไป ให้ทำให้อินเทอร์เฟซการค้นหาใช้งานได้