หน้านี้ของบทแนะนำ Cloud Search แสดงวิธีตั้งค่าแหล่งข้อมูล และโปรแกรมเชื่อมต่อเนื้อหาสำหรับการจัดทำดัชนีข้อมูล หากต้องการเริ่มต้นตั้งแต่ต้นของบทแนะนำนี้ โปรดดูบทแนะนำการเริ่มต้นใช้งาน Cloud Search
สร้างเครื่องมือเชื่อมต่อ
เปลี่ยนไดเรกทอรีที่ใช้งานอยู่เป็นไดเรกทอรี cloud-search-samples/end-to-end/connector
แล้วเรียกใช้คำสั่งนี้
mvn package -DskipTests
คำสั่งนี้จะดาวน์โหลดทรัพยากร Dependency ที่จำเป็นสำหรับการสร้างโปรแกรมเชื่อมต่อเนื้อหาและคอมไพล์โค้ด
สร้างข้อมูลเข้าสู่ระบบบัญชีบริการ
เครื่องมือเชื่อมต่อต้องใช้ข้อมูลเข้าสู่ระบบของบัญชีบริการเพื่อเรียกใช้ Cloud Search API วิธีสร้างข้อมูลเข้าสู่ระบบ
- กลับไปที่คอนโซล Google Cloud
- คลิกข้อมูลเข้าสู่ระบบที่การนำทางด้านซ้าย หน้า "ข้อมูลเข้าสู่ระบบ" จะปรากฏขึ้น
- คลิกรายการแบบเลื่อนลง + สร้างข้อมูลเข้าสู่ระบบ แล้วเลือก บัญชีบริการ หน้า "สร้างบัญชีบริการ" จะปรากฏขึ้น
- ป้อน "tutorial" ในช่องชื่อบัญชีบริการ
- จดค่ารหัสบัญชีบริการ (ต่อจากชื่อบัญชีบริการ) ระบบจะใช้ค่านี้ในภายหลัง
- คลิกสร้าง กล่องโต้ตอบ "สิทธิ์ของบัญชีบริการ (ไม่บังคับ)" จะปรากฏขึ้น
- คลิกดำเนินการต่อ กล่องโต้ตอบ "ให้สิทธิ์ผู้ใช้เข้าถึงบัญชีบริการนี้ (ไม่บังคับ)" จะปรากฏขึ้น
- คลิกเสร็จ หน้าจอ "ข้อมูลเข้าสู่ระบบ" จะปรากฏขึ้น
- คลิกอีเมลบัญชีบริการในส่วนบัญชีบริการ หน้า "รายละเอียดบัญชีบริการ" จะปรากฏขึ้น
- ในส่วนคีย์ ให้คลิกรายการแบบเลื่อนลงเพิ่มคีย์ แล้วเลือก สร้างคีย์ใหม่ กล่องโต้ตอบ "สร้างคีย์ส่วนตัว" จะปรากฏขึ้น
- คลิกสร้าง
- (ไม่บังคับ) หากกล่องโต้ตอบ "คุณต้องการอนุญาตให้ดาวน์โหลดใน console.cloud.google.com ไหม" ปรากฏขึ้น ให้คลิกอนุญาต
- ระบบจะบันทึกไฟล์คีย์ส่วนตัวลงในคอมพิวเตอร์ จดตำแหน่ง ของไฟล์ที่ดาวน์โหลด ระบบจะใช้ไฟล์นี้เพื่อกำหนดค่าโปรแกรมเชื่อมต่อเนื้อหาเพื่อให้สามารถตรวจสอบสิทธิ์ของตัวเองเมื่อเรียกใช้ Google Cloud Search API
เริ่มต้นการสนับสนุนจากบุคคลที่สาม
เริ่มต้นการรองรับบุคคลที่สามสำหรับ Google Cloud Search ก่อนที่จะเรียกใช้ Cloud Search API อื่นๆ
วิธีเริ่มต้นการสนับสนุนของบุคคลที่สาม
- สร้างข้อมูลเข้าสู่ระบบของเว็บแอปพลิเคชันในโปรเจ็กต์แพลตฟอร์ม Cloud Search ดูหัวข้อ สร้างข้อมูลเข้าสู่ระบบ คุณต้องมี รหัสไคลเอ็นต์และรหัสลับไคลเอ็นต์
- รับโทเค็นเพื่อการเข้าถึงโดยใช้
OAuth 2.0 Playground โดยทำดังนี้
- คลิกการกำหนดค่า OAuth 2.0 (ไอคอนการตั้งค่า) แล้วเลือกใช้ข้อมูลเข้าสู่ระบบ OAuth ของคุณเอง
- ป้อนรหัสไคลเอ็นต์และรหัสลับไคลเอ็นต์
- ในช่องขอบเขต ให้ป้อน
https://www.googleapis.com/auth/cloud_search.settingsแล้วคลิก ให้สิทธิ์ API - คลิกเปลี่ยนรหัสการให้สิทธิ์ของโทเค็น
เรียกใช้คำสั่ง curl นี้ โดยแทนที่
[YOUR_ACCESS_TOKEN]ด้วยโทเค็นของคุณcurl --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หากไม่สำเร็จ โปรดติดต่อทีมสนับสนุนของ Cloud Searchใช้
operations.getเพื่อยืนยันการเริ่มต้นcurl 'https://cloudsearch.googleapis.com/v1/operations/<var>operation_name</var>?key=[YOUR_API_KEY]' \ --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \ --header 'Accept: application/json' \ --compressedการเริ่มต้นจะเสร็จสมบูรณ์เมื่อ
doneเป็นtrue
สร้างแหล่งข้อมูล
จากนั้นสร้างแหล่งข้อมูลในคอนโซลผู้ดูแลระบบ แหล่งข้อมูล มีเนมสเปซสำหรับการจัดทำดัชนีเนื้อหาโดยใช้ตัวเชื่อมต่อ
- เปิดคอนโซลผู้ดูแลระบบของ Google
- คลิกไอคอนแอป หน้า "การดูแลระบบแอป" จะปรากฏขึ้น
- คลิก Google Workspace หน้า "การดูแลระบบแอป Google Workspace" จะปรากฏขึ้น
- เลื่อนลงแล้วคลิก Cloud Search หน้า "การตั้งค่าสำหรับ Google Workspace" จะปรากฏขึ้น
- คลิกแหล่งข้อมูลของบุคคลที่สาม หน้า "แหล่งข้อมูล" จะปรากฏขึ้น
- คลิก + สีเหลืองกลม กล่องโต้ตอบ "เพิ่มแหล่งข้อมูลใหม่" จะปรากฏขึ้น
- ในช่องชื่อที่แสดง ให้พิมพ์ "บทแนะนำ"
- ในช่องอีเมลบัญชีบริการ ให้ป้อนอีเมลของบัญชีบริการที่คุณสร้างขึ้นในส่วนก่อนหน้า หากไม่ทราบ อีเมลของบัญชีบริการ ให้ค้นหาค่าใน หน้า บัญชีบริการ
- คลิกเพิ่ม กล่องโต้ตอบ "สร้างแหล่งข้อมูลเรียบร้อยแล้ว" จะปรากฏขึ้น
- คลิก *ตกลง จดรหัสแหล่งที่มาของแหล่งข้อมูลที่สร้างขึ้นใหม่ ระบบจะใช้รหัสแหล่งข้อมูลเพื่อกำหนดค่าโปรแกรมเชื่อมต่อเนื้อหา
สร้างโทเค็นเพื่อการเข้าถึงส่วนบุคคลสำหรับ GitHub API
ตัวเชื่อมต่อต้องมีสิทธิ์เข้าถึง GitHub API ที่ได้รับการตรวจสอบสิทธิ์เพื่อ ให้มีโควต้าเพียงพอ เพื่อความสะดวก ตัวเชื่อมต่อจะใช้ประโยชน์จากโทเค็นเพื่อการเข้าถึงส่วนบุคคล แทน OAuth โทเค็นส่วนบุคคลช่วยให้ตรวจสอบสิทธิ์ในฐานะ ผู้ใช้ที่มีชุดสิทธิ์แบบจำกัดได้เช่นเดียวกับ OAuth
- เข้าสู่ระบบ GitHub
- คลิกรูปโปรไฟล์ที่มุมขวาบน เมนูแบบเลื่อนลงจะปรากฏขึ้น
- คลิกการตั้งค่า
- คลิกการตั้งค่าสำหรับนักพัฒนาซอฟต์แวร์
- คลิกโทเค็นเพื่อการเข้าถึงส่วนบุคคล
- คลิกสร้างโทเค็นเพื่อการเข้าถึงส่วนบุคคล
- ป้อน "บทแนะนำ Cloud Search" ในช่องหมายเหตุ
- ตรวจสอบขอบเขต public_repo
- คลิกสร้างโทเค็น
- จดโทเค็นที่สร้างขึ้น ตัวเชื่อมต่อใช้เพื่อเรียก API ของ GitHub และให้โควต้า 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 ทีละรายการเพื่อลด
ผลกระทบจากความล้มเหลว ระบบจะแสดงจุดตรวจสอบ
พร้อมผลลัพธ์ของการข้ามที่มีรายการ
ที่เก็บที่จะจัดทำดัชนีในการเรียกใช้ getIds() ครั้งต่อๆ ไป หากเกิดข้อผิดพลาด
ระบบจะทำการจัดทำดัชนีต่อที่ที่เก็บปัจจุบันแทนที่จะเริ่ม
ตั้งแต่ต้น
เมธอด collectRepositoryItems() จะจัดการการข้ามผ่านที่เก็บ GitHub เดียว
เมธอดนี้จะแสดงผลคอลเล็กชันของ ApiOperations
ซึ่งแสดงถึงรายการที่จะพุชลงในคิว ระบบจะส่งรายการเป็นชื่อทรัพยากรและค่าแฮชที่แสดงสถานะปัจจุบันของรายการ
ระบบจะใช้ค่าแฮชในการข้ามผ่านที่เก็บ GitHub ในครั้งต่อๆ ไป ค่านี้จะช่วยให้คุณตรวจสอบได้ง่ายๆ ว่าเนื้อหามีการเปลี่ยนแปลงหรือไม่โดยไม่ต้องอัปโหลดเนื้อหาเพิ่มเติม ตัวเชื่อมต่อจะจัดคิวรายการทั้งหมดโดยไม่เลือก หากรายการเป็นรายการใหม่หรือค่าแฮชมีการเปลี่ยนแปลง ระบบจะทำให้รายการพร้อมสำหรับการสำรวจในคิว มิฉะนั้นจะถือว่าสินค้าไม่มีการแก้ไข
การประมวลผลคิว
หลังจากที่การข้ามผ่านทั้งหมดเสร็จสมบูรณ์แล้ว ตัวเชื่อมต่อจะเริ่มสำรวจคิวเพื่อหาข้อมูลที่ต้องจัดทำดัชนี
ระบบจะเรียกใช้เมธอด getDoc()
สำหรับแต่ละรายการที่ดึงมาจากคิว วิธีการนี้จะอ่าน
รายการจาก GitHub และแปลงเป็นรูปแบบที่เหมาะสม
สำหรับการจัดทำดัชนี
เนื่องจากเครื่องมือเชื่อมต่อทำงานกับข้อมูลสดที่อาจมีการเปลี่ยนแปลงได้ทุกเมื่อ getDoc() จึงตรวจสอบด้วยว่ารายการในคิวยังคงใช้งานได้และลบรายการที่ไม่มีอยู่ออกจากดัชนี
สำหรับออบเจ็กต์ GitHub แต่ละรายการที่ตัวเชื่อมต่อจัดทำดัชนี indexItem()เมธอดที่เกี่ยวข้องจะจัดการการสร้างการแสดงรายการสำหรับ Cloud Search
เช่น หากต้องการสร้างการแสดงเนื้อหารายการต่างๆ ให้ทำดังนี้
จากนั้นให้ติดตั้งใช้งานอินเทอร์เฟซการค้นหา