หน้านี้ของบทแนะนำ Cloud Search จะแสดงวิธีตั้งค่าแหล่งข้อมูลและเครื่องมือเชื่อมต่อเนื้อหาสําหรับการจัดทําดัชนีข้อมูล หากต้องการเริ่มต้นบทแนะนำนี้ตั้งแต่ต้น โปรดดูบทแนะนำการเริ่มต้นใช้งาน Cloud Search
สร้างเครื่องมือเชื่อมต่อ
เปลี่ยนไดเรกทอรีที่ทำงานอยู่เป็นไดเรกทอรี cloud-search-samples/end-to-end/connector
แล้วเรียกใช้คำสั่งนี้
mvn package -DskipTests
คำสั่งจะดาวน์โหลดไลบรารีที่จำเป็นสำหรับการสร้างเครื่องมือเชื่อมต่อเนื้อหาและคอมไพล์โค้ด
สร้างข้อมูลเข้าสู่ระบบบัญชีบริการ
ตัวเชื่อมต่อต้องใช้ข้อมูลเข้าสู่ระบบของบัญชีบริการเพื่อเรียกใช้ Cloud Search API วิธีสร้างข้อมูลเข้าสู่ระบบ
- กลับไปที่คอนโซล Google Cloud
- คลิกข้อมูลเข้าสู่ระบบในการนําทางด้านซ้าย หน้า "ข้อมูลเข้าสู่ระบบ" จะปรากฏขึ้น
- คลิกรายการแบบเลื่อนลง + สร้างข้อมูลเข้าสู่ระบบ แล้วเลือกบัญชีบริการ หน้า "สร้างบัญชีบริการ" จะปรากฏขึ้น
- ป้อน "tutorial" ในช่องชื่อบัญชีบริการ
- จดบันทึกค่ารหัสบัญชีบริการ (อยู่หลังชื่อบัญชีบริการ) ระบบจะใช้ค่านี้ในภายหลัง
- คลิกสร้าง กล่องโต้ตอบ "สิทธิ์ของบัญชีบริการ (ไม่บังคับ)" จะปรากฏขึ้น
- คลิกดำเนินการต่อ กล่องโต้ตอบ "ให้สิทธิ์ผู้ใช้เข้าถึงบัญชีบริการนี้ (ไม่บังคับ)" จะปรากฏขึ้น
- คลิกเสร็จ หน้าจอ "ข้อมูลเข้าสู่ระบบ" จะปรากฏขึ้น
- คลิกอีเมลบัญชีบริการในส่วนบัญชีบริการ หน้า "รายละเอียดบัญชีบริการ" จะปรากฏขึ้น
- ในส่วนคีย์ ให้คลิกรายการแบบเลื่อนลงเพิ่มคีย์ แล้วเลือกสร้างคีย์ใหม่ กล่องโต้ตอบ "สร้างคีย์ส่วนตัว" จะปรากฏขึ้น
- คลิกสร้าง
- (ไม่บังคับ) หากกล่องโต้ตอบ "คุณต้องการอนุญาตการดาวน์โหลดในconsole.cloud.google.com ไหม" ปรากฏขึ้น ให้คลิกอนุญาต
- ระบบจะบันทึกไฟล์คีย์ส่วนตัวลงในคอมพิวเตอร์ จดตำแหน่งของไฟล์ที่ดาวน์โหลดไว้ ไฟล์นี้ใช้เพื่อกําหนดค่าเครื่องมือเชื่อมต่อเนื้อหาเพื่อให้ตรวจสอบสิทธิ์ได้เมื่อเรียกใช้ Google Cloud Search API
เริ่มต้นการสนับสนุนของบุคคลที่สาม
คุณต้องเริ่มต้นการสนับสนุนของบุคคลที่สามสําหรับ Google Cloud Search ก่อนจึงจะเรียกใช้ Cloud Search API อื่นๆ ได้
วิธีเริ่มต้นการสนับสนุนของบุคคลที่สามสําหรับ Cloud Search
โปรเจ็กต์แพลตฟอร์ม Cloud Search มีข้อมูลเข้าสู่ระบบบัญชีบริการ อย่างไรก็ตาม คุณต้องสร้างข้อมูลเข้าสู่ระบบแอปพลิเคชันบนเว็บเพื่อเริ่มต้นการสนับสนุนของบุคคลที่สาม ดูวิธีการสร้างข้อมูลเข้าสู่ระบบเว็บแอปพลิเคชันได้ที่หัวข้อสร้างข้อมูลเข้าสู่ระบบ เมื่อทำขั้นตอนนี้เสร็จแล้ว คุณควรมีรหัสไคลเอ็นต์และไฟล์รหัสลับไคลเอ็นต์
ใช้OAuth 2 Playground ของ Google เพื่อรับโทเค็นการเข้าถึง
- คลิกการตั้งค่าแล้วเลือกใช้ข้อมูลเข้าสู่ระบบของคุณเอง
- ป้อนรหัสไคลเอ็นต์และรหัสลับไคลเอ็นต์จากขั้นตอนที่ 1
- คลิกปิด
- ในช่องขอบเขต ให้พิมพ์
https://www.googleapis.com/auth/cloud_search.settings
แล้วคลิกให้สิทธิ์ OAuth 2 Playground จะแสดงผลรหัสการให้สิทธิ์ - คลิกเปลี่ยนรหัสการให้สิทธิ์ของโทเค็น ระบบจะแสดงโทเค็น
หากต้องการเริ่มต้นการสนับสนุนของบุคคลที่สามสําหรับ 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" จะปรากฏขึ้น
- คลิกแหล่งข้อมูลของบุคคลที่สาม หน้า "แหล่งข้อมูล" จะปรากฏขึ้น
- คลิกเครื่องหมาย + วงกลมสีเหลือง แล้วกล่องโต้ตอบ "เพิ่มแหล่งข้อมูลใหม่" จะปรากฏขึ้น
- ในช่องชื่อที่แสดง ให้พิมพ์ "tutorial"
- ในช่องอีเมลบัญชีบริการ ให้ป้อนอีเมลของบัญชีบริการที่คุณสร้างขึ้นในส่วนก่อนหน้า หากไม่ทราบอีเมลของบัญชีบริการ ให้ค้นหาค่าในหน้าบัญชีบริการ
- คลิกเพิ่ม กล่องโต้ตอบ "สร้างแหล่งข้อมูลเรียบร้อยแล้ว" จะปรากฏขึ้น
- คลิก *ตกลง จดบันทึกรหัสแหล่งที่มาของแหล่งข้อมูลที่สร้างขึ้นใหม่ ระบบจะใช้รหัสแหล่งข้อมูลในการกำหนดค่าโปรแกรมเชื่อมต่อเนื้อหา
สร้างโทเค็นการเข้าถึงส่วนบุคคลสำหรับ 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
เมธอด จะสร้างอินสแตนซ์ IndexingApplication
ของ SDK และเริ่มใช้งานmain
ListingConnector
ที่ SDK มีให้ใช้กลยุทธ์การเรียกใช้เพื่อใช้ประโยชน์จากคิว Cloud Search ในการติดตามสถานะของรายการในดัชนี โดยมอบสิทธิ์ให้ GithubRepository
ซึ่งติดตั้งใช้งานโดยโปรแกรมเชื่อมต่อตัวอย่าง เพื่อเข้าถึงเนื้อหาจาก GitHub
การสํารวจที่เก็บ GitHub
ในระหว่างการเรียกใช้แบบเต็ม ระบบจะเรียกใช้เมธอด getIds()
เพื่อส่งรายการที่อาจต้องจัดทำดัชนีไปยังคิว
ตัวเชื่อมต่อสามารถจัดทำดัชนีที่เก็บหรือองค์กรได้หลายรายการ ระบบจะเรียกดูที่เก็บ GitHub ทีละที่เพื่อลดผลกระทบของความล้มเหลว ระบบจะแสดงผลการตรวจสอบจุดที่หยุดชั่วคราวพร้อมผลลัพธ์ของการเรียกใช้ซึ่งมีรายการที่เก็บข้อมูลที่จะจัดทำดัชนีในการเรียกใช้ getIds()
ครั้งถัดไป หากเกิดข้อผิดพลาด ระบบจะจัดทําดัชนีต่อที่ที่เก็บข้อมูลปัจจุบันแทนที่จะเริ่มต้นจากต้น
เมธอด collectRepositoryItems()
จะจัดการการเรียกดูที่เก็บ GitHub รายการเดียว เมธอดนี้จะแสดงผลคอลเล็กชัน ApiOperations
ที่แสดงรายการที่จะส่งไปยังคิว ระบบจะพุชรายการเป็นชื่อทรัพยากรและค่าแฮชที่แสดงสถานะปัจจุบันของรายการ
ระบบจะใช้ค่าแฮชในการเรียกดูที่ตามมาของที่เก็บ GitHub ค่านี้ใช้ตรวจสอบแบบเบาๆ เพื่อดูว่าเนื้อหามีการเปลี่ยนแปลงหรือไม่โดยไม่ต้องอัปโหลดเนื้อหาเพิ่มเติม ตัวเชื่อมต่อจะจัดคิวรายการทั้งหมดโดยไม่พิจารณา หากรายการใหม่หรือค่าแฮชมีการเปลี่ยนแปลง ระบบจะทําให้รายการพร้อมสําหรับการโหวตในคิว มิฉะนั้น ระบบจะถือว่ารายการดังกล่าวไม่มีการแก้ไข
กำลังประมวลผลคิว
หลังจากการเรียกดูทั้งหมดเสร็จสมบูรณ์แล้ว ตัวเชื่อมต่อจะเริ่มโพลคิวสำหรับรายการที่ต้องจัดทำดัชนี ระบบจะเรียกใช้เมธอด getDoc()
สำหรับแต่ละรายการที่ดึงมาจากคิว วิธีการจะอ่านรายการจาก GitHub และแปลงเป็นการแสดงผลที่เหมาะสมสำหรับการจัดทำดัชนี
เนื่องจากเครื่องมือเชื่อมต่อทำงานกับข้อมูลสดที่อาจมีการเปลี่ยนแปลงได้ทุกเมื่อ getDoc()
จะตรวจสอบด้วยว่ารายการในคิวยังคงใช้งานได้อยู่และลบรายการใดๆ ออกจากดัชนีที่ไม่มีอยู่อีกต่อไป
สําหรับออบเจ็กต์ GitHub แต่ละรายการที่ตัวเชื่อมต่อจัดทำดัชนีไว้ วิธีการ indexItem()
ที่เกี่ยวข้องจะจัดการการสร้างการนําเสนอรายการสําหรับ Cloud Search เช่น หากต้องการสร้างการแสดงผลสำหรับรายการเนื้อหา ให้ทำดังนี้
ต่อไปให้ติดตั้งใช้งานอินเทอร์เฟซการค้นหา