คู่มือนี้มีไว้สำหรับผู้ดูแลระบบตัวเชื่อมต่อ CSV (ค่าที่คั่นด้วยคอมมา) ของ Google Cloud Search ซึ่งมีหน้าที่รับผิดชอบในการดาวน์โหลด กำหนดค่า เรียกใช้ และ ตรวจสอบตัวเชื่อมต่อ
คู่มือนี้มีวิธีการสำหรับงานสำคัญต่อไปนี้
- ดาวน์โหลดซอฟต์แวร์เครื่องมือเชื่อมต่อ CSV ของ Cloud Search
- กำหนดค่าเครื่องมือเชื่อมต่อสำหรับแหล่งข้อมูล CSV ที่เฉพาะเจาะจง
- ติดตั้งใช้งานและเรียกใช้เครื่องมือเชื่อมต่อ
หากต้องการทำความเข้าใจแนวคิดในเอกสารนี้ คุณควรมีความคุ้นเคยกับ Google Workspace, ไฟล์ CSV และรายการควบคุมการเข้าถึง (ACL)
ภาพรวมของเครื่องมือเชื่อมต่อ CSV ของ Cloud Search
ตัวเชื่อมต่อ CSV ของ Cloud Search ทำงานกับไฟล์ข้อความค่าที่คั่นด้วยคอมมา (CSV) ไฟล์ CSV จะจัดเก็บข้อมูลแบบตาราง โดยแต่ละบรรทัดคือ บันทึกข้อมูล
ตัวเชื่อมต่อจะดึงข้อมูลแถวจากไฟล์ CSV และจัดทำดัชนีใน Cloud Search โดยใช้ Indexing API เมื่อจัดทำดัชนีแล้ว แถวจะ ค้นหาได้ผ่านไคลเอ็นต์ Cloud Search หรือ Query API นอกจากนี้ ตัวเชื่อมต่อยังรองรับ ACL เพื่อควบคุมการเข้าถึงเนื้อหาของผู้ใช้ด้วย
คุณติดตั้งตัวเชื่อมต่อใน Linux หรือ Windows ได้ ก่อนการติดตั้งใช้งาน โปรดตรวจสอบว่าคุณมีคอมโพเนนต์ต่อไปนี้
- ติดตั้ง Java JRE 1.8 ในคอมพิวเตอร์ที่เรียกใช้ตัวเชื่อมต่อ
- ข้อมูล Google Workspace ที่ใช้สร้างการเชื่อมต่อมีดังนี้
- คีย์ส่วนตัวของ Google Workspace (มีรหัสบัญชีบริการ)
- รหัสแหล่งข้อมูล Google Workspace
โดยปกติแล้ว ผู้ดูแลระบบ Google Workspace สำหรับโดเมนจะเป็นผู้ให้ข้อมูลเข้าสู่ระบบเหล่านี้
ขั้นตอนการติดตั้งใช้งาน
ทำตามขั้นตอนต่อไปนี้เพื่อติดตั้งใช้งานตัวเชื่อมต่อ CSV ของ Cloud Search
- ติดตั้งซอฟต์แวร์ตัวเชื่อมต่อ
- ระบุการกำหนดค่าเครื่องมือเชื่อมต่อ
- กำหนดค่าการเข้าถึงแหล่งข้อมูล Cloud Search
- กำหนดค่าการเข้าถึงไฟล์ CSV
- ระบุชื่อคอลัมน์ คีย์ที่ไม่ซ้ำกัน และคอลัมน์วันที่เวลา
- ระบุคอลัมน์สำหรับ URL ของผลการค้นหาที่คลิกได้
- ระบุรูปแบบข้อมูลเมตาและคอลัมน์
- กำหนดเวลาการไปยังส่วนต่างๆ ของข้อมูล
- ระบุตัวเลือก ACL
1. ติดตั้ง SDK
ติดตั้ง SDK ลงในที่เก็บ Maven ในเครื่อง
โคลนที่เก็บ SDK จาก GitHub
$ git clone https://github.com/google-cloudsearch/connector-sdk.git $ cd connector-sdk/csv
ตรวจสอบเวอร์ชันที่คุณเลือกโดยทำดังนี้
$ git checkout tags/v1-0.0.3
สร้างเครื่องมือเชื่อมต่อ
$ mvn package
แตกไฟล์และติดตั้งตัวเชื่อมต่อ
$ cp target/google-cloudsearch-csv-connector-v1-0.0.3.zip installation-dir $ cd installation-dir $ unzip google-cloudsearch-csv-connector-v1-0.0.3.zip $ cd google-cloudsearch-csv-connector-v1-0.0.3
2. ระบุการกำหนดค่าเครื่องมือเชื่อมต่อ CSV
คุณควบคุมลักษณะการทำงานของตัวเชื่อมต่อผ่านพารามิเตอร์ในไฟล์การกำหนดค่า พารามิเตอร์ที่กำหนดค่าได้ ได้แก่
- การเข้าถึงแหล่งข้อมูล
- ตำแหน่งและคำจำกัดความของไฟล์ CSV
- คอลัมน์รหัสที่ไม่ซ้ำกัน
- ตัวเลือกการข้ามและการควบคุมการเข้าถึง
วิธีสร้างไฟล์การกำหนดค่า
- เปิดเครื่องมือแก้ไขข้อความและตั้งชื่อไฟล์เป็น
connector-config.properties - เพิ่มพารามิเตอร์การกำหนดค่าเป็นคู่
key=valueโดยแต่ละคู่จะอยู่ในบรรทัดใหม่ ดูตัวอย่างไฟล์การกำหนดค่าได้ที่ ตัวอย่างไฟล์การกำหนดค่า
เก็บไฟล์การกำหนดค่าไว้ในไดเรกทอรีเดียวกับตัวเชื่อมต่อเพื่อลดความซับซ้อนในการติดตาม
หากต้องการให้ตัวเชื่อมต่อรู้จักไฟล์ ให้ระบุเส้นทางของไฟล์ในบรรทัดคำสั่ง มิเช่นนั้น ตัวเชื่อมต่อจะใช้ connector-config.properties ในไดเรกทอรีภายในเครื่องโดยค่าเริ่มต้น ดูหัวข้อ
เรียกใช้ตัวเชื่อมต่อ
3. กำหนดค่าการเข้าถึงแหล่งข้อมูล Cloud Search
ไฟล์กำหนดค่าต้องระบุพารามิเตอร์เพื่อเข้าถึงแหล่งข้อมูล Cloud Search คุณต้องมีรหัสแหล่งข้อมูล รหัสบัญชีบริการ และเส้นทางไปยังไฟล์คีย์ส่วนตัวของบัญชีบริการ
| การตั้งค่า | พารามิเตอร์ |
| รหัสแหล่งข้อมูล | api.sourceId=1234567890abcdef
ต้องระบุ รหัสแหล่งข้อมูล Cloud Search ที่ผู้ดูแลระบบ Google Workspace ตั้งค่าไว้ |
| เส้นทางไปยังคีย์ส่วนตัวของบัญชีบริการ | api.serviceAccountPrivateKeyFile=./PrivateKey.json
ต้องระบุ ไฟล์คีย์บัญชีบริการสำหรับการช่วยเหลือพิเศษของตัวเชื่อมต่อ |
| รหัสแหล่งที่มาของข้อมูลประจำตัว | api.identitySourceId=x0987654321
ต้องระบุหากใช้ผู้ใช้และกลุ่มภายนอก รหัสแหล่งข้อมูลระบุตัวตนที่ผู้ดูแลระบบ Google Workspace ตั้งค่าไว้ |
4. กำหนดค่าพารามิเตอร์ไฟล์ CSV
ระบุเส้นทาง รูปแบบ และการเข้ารหัสของไฟล์
| การตั้งค่า | พารามิเตอร์ |
| เส้นทางไปยังไฟล์ CSV | csv.filePath=./movie_content.csv
ต้องระบุ เส้นทางไปยังไฟล์ที่จะจัดทำดัชนี |
| รูปแบบไฟล์ | csv.format=DEFAULT
รูปแบบของไฟล์ ค่าที่เป็นไปได้มาจากคลาส CSVFormat ของ Apache Commons CSV ค่ารูปแบบ ได้แก่ |
| ตัวแก้ไขรูปแบบไฟล์ | csv.format.withMethod=value
การแก้ไขวิธีที่ Cloud Search จัดการไฟล์ วิธีการที่เป็นไปได้มาจากคลาส CSVFormat ของ Apache Commons CSV และรวมถึงวิธีการที่ใช้ค่าอักขระ สตริง หรือบูลีนเดียว เช่น หากต้องการระบุเครื่องหมายอัฒภาคเป็นตัวคั่น ให้ใช้ |
| ประเภทการเข้ารหัสไฟล์ | csv.fileEncoding=UTF-8
ชุดอักขระ Java ที่จะใช้ ค่าเริ่มต้นจะเป็นชุดอักขระของแพลตฟอร์ม |
5. ระบุชื่อคอลัมน์ที่จะจัดทำดัชนีและคอลัมน์คีย์ที่ไม่ซ้ำกัน
ระบุข้อมูลคอลัมน์ในไฟล์การกำหนดค่า
| การตั้งค่า | พารามิเตอร์ |
| คอลัมน์ที่จะทำดัชนี | csv.csvColumns=movieId,movieTitle,description,actors,releaseDate,year,userratings...
ชื่อคอลัมน์ที่จะจัดทำดัชนีจากไฟล์ CSV โดยค่าเริ่มต้น ระบบจะใช้แถวแรกของ CSV เป็นส่วนหัว หากมีการระบุ |
| คอลัมน์คีย์ที่ไม่ซ้ำกัน | csv.uniqueKeyColumns=movieId
คอลัมน์ที่ใช้สร้างรหัสที่ไม่ซ้ำกัน ค่าเริ่มต้นจะเป็นแฮชโค้ดของระเบียน |
6. ระบุคอลัมน์สำหรับ URL ของผลการค้นหาที่คลิกได้
เปิดใช้ URL ที่คลิกได้สำหรับผลการค้นหา
| การตั้งค่า | พารามิเตอร์ |
| รูปแบบ URL ของผลการค้นหา | url.format=https://mymoviesite.com/movies/{0}
ต้องระบุ รูปแบบที่ใช้สร้าง URL ของข้อมูลพร็อพเพอร์ตี้ |
| พารามิเตอร์ URL | url.columns=movieId
ต้องระบุ ชื่อคอลัมน์ CSV ที่จะใช้ค่าในการสร้าง URL ของมุมมองระเบียน |
| พารามิเตอร์ URL ของผลการค้นหาที่จะหลีกเลี่ยง | url.columnsToEscape=movieId
ไม่บังคับ ชื่อคอลัมน์ CSV ที่จะมีการหลบ URL เพื่อสร้าง URL ของข้อมูลพร็อพเพอร์ตี้ที่ถูกต้อง |
7. ระบุข้อมูลเมตา รูปแบบคอลัมน์ และคุณภาพการค้นหา
คุณเพิ่มพารามิเตอร์ลงในไฟล์การกำหนดค่าที่ระบุสิ่งต่อไปนี้ได้
พารามิเตอร์การกำหนดค่าข้อมูลเมตา
พารามิเตอร์เหล่านี้อธิบายคอลัมน์สำหรับการป้อนข้อมูลเมตาของสินค้า
| การตั้งค่า | พารามิเตอร์ |
| ชื่อ | itemMetadata.title.field=movieTitle
itemMetadata.title.defaultValue=Gone with the Wind
แอตทริบิวต์ข้อมูลเมตาสำหรับชื่อเอกสาร โดยค่าเริ่มต้นจะเป็นสตริงว่าง |
| URL | itemMetadata.sourceRepositoryUrl.field=url
itemMetadata.sourceRepositoryUrl.defaultValue=https://www.imdb.com/title/tt0031381/
แอตทริบิวต์ข้อมูลเมตาสำหรับ URL ของเอกสารในผลการค้นหา |
| การประทับเวลาที่สร้าง | itemMetadata.createTime.field=releaseDate
itemMetadata.createTime.defaultValue=1940-01-17
แอตทริบิวต์ข้อมูลเมตาสำหรับการประทับเวลาการสร้างเอกสาร |
| เวลาที่แก้ไขล่าสุด | itemMetadata.updateTime.field=releaseDate
itemMetadata.updateTime.defaultValue=1940-01-17
แอตทริบิวต์ข้อมูลเมตาสำหรับการประทับเวลาที่แก้ไขล่าสุดของเอกสาร |
| ภาษาของเอกสาร | itemMetadata.contentLanguage.field=languageCode
itemMetadata.contentLanguage.defaultValue=en-US
ภาษาของเนื้อหาสำหรับเอกสารที่กำลังจัดทำดัชนี |
| ประเภทออบเจ็กต์สคีมา | itemMetadata.objectType.field=typeitemMetadata.objectType.defaultValue=movie
ประเภทออบเจ็กต์ที่ใช้โดยตัวเชื่อมต่อตามที่กำหนดไว้ใน schema เครื่องมือเชื่อมต่อจะไม่จัดทำดัชนี Structured Data หากไม่ได้ระบุพร็อพเพอร์ตี้นี้ |
รูปแบบเวลาและวันที่
พารามิเตอร์นี้ระบุรูปแบบวันที่และเวลาเพิ่มเติมสําหรับการแยกวิเคราะห์ค่าสตริง เป็นช่องวันที่หรือวันที่และเวลา
| การตั้งค่า | พารามิเตอร์ |
| รูปแบบวันที่และเวลาเพิ่มเติม | structuredData.dateTimePatterns=MM/dd/uuuu HH:mm:ssXXX
รายการ java.time.format.DateTimeFormatterรูปแบบเพิ่มเติมที่คั่นด้วยเครื่องหมายเซมิโคลอน ระบบจะใช้รูปแบบเมื่อแยกวิเคราะห์ค่าสตริงสำหรับฟิลด์วันที่หรือวันที่และเวลาในข้อมูลเมตาหรือสคีมา ค่าเริ่มต้นคือรายการว่าง แต่ระบบจะรองรับรูปแบบ RFC 3339 และ RFC 1123 เสมอ
|
รูปแบบคอลัมน์
พารามิเตอร์เหล่านี้จะระบุวิธีแยกวิเคราะห์คอลัมน์ในไฟล์ CSV
| การตั้งค่า | พารามิเตอร์ |
| ข้ามส่วนหัว | csv.skipHeaderRecord=true
ข้ามบรรทัดแรก ค่าเริ่มต้นคือ False |
| คอลัมน์ที่มีหลายค่า | csv.multiValueColumns=genre,actors
ชื่อคอลัมน์ที่มีหลายค่า |
| ตัวคั่นสำหรับคอลัมน์ที่มีหลายค่า | csv.multiValue.genre=;
ตัวคั่นสำหรับคอลัมน์ที่มีหลายค่า โดยตัวคั่นเริ่มต้นคือคอมมา |
คุณภาพการค้นหา
ตัวเชื่อมต่อใช้เทมเพลตเนื้อหาเพื่อจัดรูปแบบระเบียน ฟิลด์ชื่อมีลำดับความสำคัญสูงสุด คุณกำหนดระดับลำดับความสำคัญ (สูง ปานกลาง ต่ำ) ให้กับ ฟิลด์อื่นๆ ได้
| การตั้งค่า | พารามิเตอร์ |
| ชื่อเนื้อหา |
contentTemplate.csv.title=movieTitle
ชื่อเนื้อหาเป็นฟิลด์ที่มีคุณภาพการค้นหาสูงที่สุด |
| คุณภาพการค้นหาสูงสำหรับช่องเนื้อหา |
contentTemplate.csv.quality.high=actors
ฟิลด์เนื้อหาที่ได้รับค่าคุณภาพการค้นหาสูง โดยค่าเริ่มต้นจะเป็นสตริงว่าง |
| คุณภาพการค้นหาต่ำสำหรับฟิลด์เนื้อหา |
contentTemplate.csv.quality.low=genre
ฟิลด์เนื้อหาที่ได้รับค่าคุณภาพการค้นหาต่ำ โดยค่าเริ่มต้นจะเป็นสตริงว่าง |
| คุณภาพการค้นหาปานกลางสำหรับช่องเนื้อหา |
contentTemplate.csv.quality.medium=description
ฟิลด์เนื้อหาที่ได้รับค่าคุณภาพการค้นหาระดับปานกลาง โดยค่าเริ่มต้นจะเป็นสตริงว่าง |
| ฟิลด์เนื้อหาที่ไม่ได้ระบุ |
contentTemplate.csv.unmappedColumnsMode=IGNORE
วิธีที่ตัวเชื่อมต่อจัดการฟิลด์เนื้อหาที่ไม่ได้ระบุ ค่าที่ใช้ได้มีดังนี้
ค่าเริ่มต้นคือ APPEND |
8. กำหนดเวลาการไปยังส่วนต่างๆ ของข้อมูล
การไปยังส่วนต่างๆ คือกระบวนการค้นพบเนื้อหา ตัวเชื่อมต่อจะข้ามแถว CSV และจัดทำดัชนีโดยใช้ Indexing API ตัวเชื่อมต่อ CSV จะดำเนินการ การไปยังทุกรายการแบบเต็มเท่านั้น
| การตั้งค่า | พารามิเตอร์ |
| ช่วงเวลาการข้าม | schedule.traversalIntervalSecs=7200
ช่วงเวลาระหว่างการสำรวจแบบเต็มในหน่วยวินาที ค่าเริ่มต้นคือ 86400 (1 วัน) |
| การสำรวจเมื่อเริ่มต้น | schedule.performTraversalOnStart=false
ตัวเชื่อมต่อจะทำการสำรวจเมื่อเริ่มต้นตัวเชื่อมต่อ แทนที่จะ
รอให้ช่วงแรกหมดอายุ ค่าเริ่มต้นคือ |
9. ระบุตัวเลือก ACL
เครื่องมือเชื่อมต่อจะใช้ ACL เพื่อควบคุมการเข้าถึง หากที่เก็บมี ACL ให้อัปโหลด หรือกำหนดค่า ACL เริ่มต้น ตั้งค่า defaultAcl.mode เป็นค่าอื่น
ที่ไม่ใช่ none
| การตั้งค่า | พารามิเตอร์ |
| โหมด ACL | defaultAcl.mode=fallback
ต้องระบุ ตัวเชื่อมต่อรองรับเฉพาะโหมดสำรอง |
| ชื่อ ACL เริ่มต้น | defaultAcl.name=VIRTUAL_CONTAINER_FOR_CONNECTOR_1
ไม่บังคับ ลบล้างชื่อคอนเทนเนอร์เสมือนที่ตัวเชื่อมต่อใช้สำหรับ
ACL เริ่มต้น ค่าเริ่มต้นคือ |
| ACL สาธารณะเริ่มต้น | defaultAcl.public=true
ตั้งค่าทั้งที่เก็บให้เข้าถึงได้แบบสาธารณสมบัติ ค่าเริ่มต้นคือ false |
| ผู้อ่านกลุ่ม ACL ทั่วไป | defaultAcl.readers.groups=google:group1, group2
|
| ผู้อ่าน ACL ทั่วไป | defaultAcl.readers.users=user1, user2, google:user3
|
| ผู้อ่านกลุ่มที่ถูกปฏิเสธ ACL ทั่วไป | defaultAcl.denied.groups=group3
|
| ผู้อ่านที่ถูกปฏิเสธ ACL ทั่วไป | defaultAcl.denied.users=user4, user5
|
| สิทธิ์เข้าถึงทั้งโดเมน | หากต้องการระบุว่าผู้ใช้ทุกคนในโดเมนควรเข้าถึงระเบียนที่จัดทำดัชนีทั้งหมดได้แบบสาธารณะ ให้ตั้งค่าตัวเลือกทั้ง 2 รายการต่อไปนี้ด้วยค่า
|
| ACL ที่กำหนดไว้ทั่วไป | หากต้องการกำหนด ACL ทั่วไปสำหรับแต่ละระเบียน ให้ตั้งค่าพารามิเตอร์ต่อไปนี้
ระบบจะถือว่าผู้ใช้และกลุ่มเป็นโดเมนในเครื่องที่กำหนดไว้ เว้นแต่จะนำหน้าด้วย " ผู้ใช้หรือกลุ่มเริ่มต้นคือสตริงว่าง ระบุตัวเลือกผู้ใช้และกลุ่ม
เฉพาะในกรณีที่ หาก |
คำจำกัดความของสคีมา
หากต้องการรองรับการค้นหา Structured Data ให้ ตั้งค่าสคีมา สำหรับแหล่งข้อมูล
ตัวอย่างเช่น พิจารณาไฟล์ CSV ที่มีข้อมูลต่อไปนี้เกี่ยวกับภาพยนตร์
- movieId
- movieTitle
- คำอธิบาย
- ปี
- releaseDate
- นักแสดง (หลายค่าคั่นด้วยคอมมา (,))
- ประเภท (หลายค่า)
- การให้คะแนน
คุณกําหนดสคีมาต่อไปนี้สําหรับแหล่งข้อมูลได้โดยอิงตามโครงสร้างนี้
{
"objectDefinitions": [
{
"name": "movie",
"propertyDefinitions": [
{
"name": "actors",
"isReturnable": true,
"isRepeatable": true,
"isFacetable": true,
"textPropertyOptions": {
"operatorOptions": {
"operatorName": "actor"
}
}
},
{
"name": "releaseDate",
"isReturnable": true,
"isRepeatable": false,
"isFacetable": false,
"datePropertyOptions": {
"operatorOptions": {
"operatorName": "released",
"lessThanOperatorName": "releasedbefore",
"greaterThanOperatorName": "releasedafter"
}
}
},
{
"name": "movieTitle",
"isReturnable": true,
"isRepeatable": false,
"isFacetable": false,
"textPropertyOptions": {
"retrievalImportance": {
"importance": "HIGHEST"
},
"operatorOptions": {
"operatorName": "title"
}
}
},
{
"name": "genre",
"isReturnable": true,
"isRepeatable": true,
"isFacetable": true,
"enumPropertyOptions": {
"operatorOptions": {
"operatorName": "genre"
},
"possibleValues": [
{
"stringValue": "Action"
},
{
"stringValue": "Documentary"
},
{
"stringValue": "Drama"
},
{
"stringValue": "Crime"
},
{
"stringValue": "Sci-fi"
}
]
}
},
{
"name": "userRating",
"isReturnable": true,
"isRepeatable": false,
"isFacetable": true,
"integerPropertyOptions": {
"orderedRanking": "ASCENDING",
"maximumValue": "10",
"operatorOptions": {
"operatorName": "score",
"lessThanOperatorName": "scorebelow",
"greaterThanOperatorName": "scoreabove"
}
}
}
]
}
]
}
ตัวอย่างไฟล์การกำหนดค่า
ไฟล์การกำหนดค่าตัวอย่างต่อไปนี้แสดงคู่พารามิเตอร์ key=value
ที่กำหนดลักษณะการทำงานของตัวเชื่อมต่อตัวอย่าง
# data source access
api.sourceId=1234567890abcd
api.serviceAccountPrivateKeyFile=./PrivateKey.json
# CSV data structure
csv.filePath=./movie_content.csv
csv.csvColumns=movieId,movieTitle,description,releaseYear,genre,actors,ratings,releaseDate
csv.skipHeaderRecord=true
url.format=https://mymoviesite.com/movies/{0}
url.columns=movieId
csv.datetimeFormat.releaseDate=yyyy-mm-dd
csv.multiValueColumns=genre,actors
csv.multiValue.genre=;
contentTemplate.csv.title=movieTitle
# metadata structured data and content
itemMetadata.title.field=movieTitle
itemMetadata.createTime.field=releaseDate
itemMetadata.contentLanguage.defaultValue=en-US
itemMetadata.objectType.defaultValue=movie
contentTemplate.csv.quality.medium=description
contentTemplate.csv.unmappedColumnsMode=IGNORE
#ACLs
defaultAcl.mode=fallback
defaultAcl.public=true
เรียกใช้เครื่องมือเชื่อมต่อ
วิธีเรียกใช้ตัวเชื่อมต่อจากบรรทัดคำสั่ง
$ java -jar google-cloudsearch-csv-connector-v1-0.0.3.jar -Dconfig=my.config
โดยค่าเริ่มต้น บันทึกของเครื่องมือเชื่อมต่อจะพร้อมใช้งานในเอาต์พุตมาตรฐาน คุณบันทึกลงในไฟล์ได้
โดยระบุ logging.properties