หน้านี้ของบทแนะนำ 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 เช่น หากต้องการสร้างการแสดงผลสำหรับรายการเนื้อหา ให้ทำดังนี้
ต่อไปให้ติดตั้งใช้งานอินเทอร์เฟซการค้นหา