Setiap konektor memiliki file konfigurasi terkait yang berisi parameter yang digunakan oleh konektor, seperti ID untuk repositori Anda. Parameter ditetapkan sebagai key-value pair, seperti api.sourceId=1234567890abcdef
.
Google Cloud Search SDK berisi beberapa parameter konfigurasi yang disediakan Google yang digunakan oleh berbagai konektor. Dari parameter konfigurasi yang disediakan Google, hanya parameter Akses sumber data yang perlu ditentukan di file konfigurasi Anda. Anda tidak perlu menentukan ulang parameter yang disediakan Google dalam file konfigurasi, kecuali Anda ingin mengganti nilai defaultnya.
Referensi ini menjelaskan parameter konfigurasi yang disediakan Google.
Contoh file konfigurasi
Contoh berikut menunjukkan file konfigurasi identitas dengan key-value pair parameter.
# # Configuration file sample # api.sourceId=1234567890abcdef api.identitySourceId=0987654321lmnopq api.serviceAccountPrivateKeyFile= ./PrivateKey.json # # Traversal schedules # schedule.traversalIntervalSecs=7200 schedule.incrementalTraversalIntervalSecs=600 # # Default ACLs # defaultAcl.mode=fallback defaultAcl.public=true
Tetapkan parameter secara umum
Bagian ini mencantumkan parameter konfigurasi wajib dan opsional yang umum ditetapkan. Jika Anda tidak mengubah nilai untuk parameter opsional, konektor akan menggunakan nilai default yang disediakan oleh SDK.
Akses sumber data
Tabel berikut mencantumkan semua parameter yang diperlukan untuk muncul dalam file konfigurasi. Parameter yang Anda gunakan bergantung pada jenis konektor yang Anda buat (konektor konten atau konektor identitas).
Pembahasan | Parameter |
---|---|
ID sumber data | api.sourceId=1234567890abcdef
Parameter ini diperlukan oleh konektor untuk mengidentifikasi lokasi repositori Anda. Anda mendapatkan nilai ini saat menambahkan sumber data ke penelusuran. Parameter ini harus dalam file konfigurasi konektor. |
ID sumber identitas | api.identitySourceId=0987654321lmnopq
Parameter ini diperlukan oleh konektor identitas untuk mengidentifikasi lokasi sumber identitas eksternal. Anda mendapatkan nilai ini saat memetakan identitas pengguna di Cloud Search. Parameter ini harus ada di semua file konfigurasi konektor identitas. |
File kunci pribadi akun layanan | api.serviceAccountPrivateKeyFile=./PrivateKey.json
Parameteter ini berisi kunci pribadi yang diperlukan untuk mengakses repositori. Anda mendapatkan nilai ini saat mengonfigurasi akses ke REST API Google Cloud Search. Parameter ini harus ada di semua file konfigurasi. |
ID akun layanan | api.serviceAccountId=123abcdef4567890
Parameter ini menentukan ID akun layanan. Nilai string kosong default hanya diizinkan jika file konfigurasi menetapkan parameter file kunci pribadi. Parameter ini diperlukan jika file kunci pribadi Anda bukan kunci JSON. |
ID Akun Google Workspace | api.customerId=123abcdef4567890
Parameter ini menentukan ID akun untuk akun Google Workspace perusahaan. Anda memperoleh nilai ini saat memetakan identitas pengguna di Cloud Search. Parameter ini diperlukan saat menyinkronkan pengguna menggunakan konektor identitas. |
URL root | api.rootUrl=baseURLPath
Parameter ini menetapkan jalur URL dasar layanan pengindeksan. Nilai default untuk parameter ini adalah string kosong yang dikonversi menjadi
|
Jadwal traversal
Parameter penjadwalan menentukan seberapa sering konektor menunggu di antara proses traversal.
Pembahasan | Parameter |
---|---|
Traversal penuh pada startup konektor | schedule.performTraversalOnStart=true|false
Konektor melakukan traversal penuh saat memulai konektor, bukan menunggu interval pertama berakhir. Nilai defaultnya adalah |
Traversal penuh setelah interval | schedule.traversalIntervalSecs=intervalInSeconds
Konektor menjalankan traversal penuh setelah interval yang ditentukan. Tentukan interval antar-traversal dalam detik. Nilai defaultnya adalah |
Keluar setelah satu traversal | connector.runOnce=true|false
Konektor menjalankan traversal penuh sekali, lalu keluar. Parameter ini hanya boleh ditetapkan ke |
Traversal inkremental setelah interval | schedule.incrementalTraversalIntervalSecs=intervalInSeconds
Konektor melakukan traversal inkremental setelah interval tertentu.
Tentukan interval antara traversal dalam hitungan detik. Nilai defaultnya adalah
|
Interval antrean polling terjadwal | schedule.pollQueueIntervalSecs=interval_in_seconds
Interval antara interval antrean polling terjadwal (dalam detik). Ini hanya digunakan oleh konektor traversal listingan. Nilai defaultnya adalah |
Daftar kontrol akses
Konektor mengontrol akses ke item dengan menggunakan ACL. Beberapa parameter memungkinkan Anda melindungi akses pengguna ke catatan terindeks dengan ACL.
Jika repositori Anda memiliki informasi ACL individual yang terkait dengan setiap item, upload semua informasi ACL untuk mengontrol akses item dalam Cloud Search. Jika repositori Anda memberikan sebagian atau tanpa informasi ACL, Anda dapat memberikan informasi ACL default dalam parameter berikut, yang diberikan SDK ke konektor.
Pembahasan | Parameter |
---|---|
Mode ACL | defaultAcl.mode=mode
Menentukan kapan harus menerapkan ACL default. Nilai valid:
Mode default-nya adalah |
ACL publik default | defaultAcl.public=true|false
ACL default yang digunakan untuk seluruh repositori ditetapkan ke akses domain publik.
Nilai defaultnya adalah |
Pembaca grup ACL umum | defaultAcl.readers.groups=google:group1@mydomain.com,
group2 |
Pembaca ACL umum | defaultAcl.readers.users=user1, user2,
google:user3@mydomain.com |
ACL umum menolak pembaca grup | defaultAcl.denied.groups=group3 |
ACL umum menolak pembaca | defaultAcl.denied.users=user4, user5 |
Seluruh akses domain | Untuk menentukan bahwa setiap data yang diindeks dapat diakses secara publik oleh setiap pengguna dalam domain, tetapkan kedua parameter berikut dengan nilai:
|
ACL yang ditetapkan umum | Untuk menentukan satu ACL bagi setiap data repositori data, tetapkan semua parameter value berikut:
|
Parameter konfigurasi metadata
Beberapa metadata item dapat dikonfigurasi. Konektor dapat menetapkan kolom metadata yang dapat dikonfigurasi selama pengindeksan. Jika konektor tidak menetapkan kolom, parameter dalam file konfigurasi Anda akan digunakan untuk menetapkan kolom tersebut.
File konfigurasi ini memiliki serangkaian parameter konfigurasi metadata bernama yang ditunjukkan oleh akhiran .field
, seperti itemMetadata.title.field=movieTitle
. Jika ada nilai untuk parameter ini, nilai tersebut akan digunakan untuk mengonfigurasi kolom metadata. Jika tidak ada nilai untuk parameter metadata yang diberi nama, metadata akan dikonfigurasi menggunakan parameter dengan akhiran .defaultValue
).
Tabel berikut menunjukkan parameter konfigurasi metadata.
Setelan | Parameter |
Judul | itemMetadata.title.field=movieTitle
itemMetadata.title.defaultValue=
Judul item. Jika title.field tidak ditetapkan ke suatu nilai, nilai untuk
title.defaultValue akan digunakan.
|
URL repositori sumber | itemMetadata.sourceRepositoryUrl.field=url
itemMetadata.sourceRepositoryUrl.defaultValue=https://www.imdb.com/title/tt0031381/
URL item yang digunakan dalam hasil penelusuran. Anda dapat menetapkan defaultValue guna menyimpan
URL untuk seluruh repositori, misalnya jika perwakilan Anda adalah file CSV dan hanya ada satu
URL untuk setiap item. Jika sourceRepositoryUrl.field tidak ditetapkan ke suatu nilai, nilai untuk sourceRepositoryUrl.defaultValue akan digunakan.
|
Nama container | itemMetadata.containerName.field=containerName
itemMetadata.containerName.defaultValue=myDefaultContainerName
Nama penampung item, seperti nama direktori atau folder sistem file. Jika containerName.field tidak ditetapkan ke suatu nilai, nilai untuk
containerName.defaultValue akan digunakan.
|
Jenis objek | itemMetadata.objectType.field=type itemMetadata.objectType.defaultValue=
Jenis objek yang digunakan oleh konektor, seperti yang ditetapkan dalam skema. Konektor tidak akan mengindeks data terstruktur apa pun jika properti ini tidak ditentukan. Jika objectType.field tidak ditetapkan ke suatu nilai, nilai untuk
objectType.defaultValue akan digunakan.
|
Waktu pembuatan | itemMetadata.createTime.field=releaseDate
itemMetadata.createTime.defaultValue=1940-01-17
Stempel waktu pembuatan dokumen. Jika createTime.field tidak ditetapkan ke suatu nilai, nilai untuk createTime.defaultValue akan digunakan.
|
Waktu update | itemMetadata.updateTime.field=releaseDate
itemMetadata.updateTime.defaultValue=1940-01-17
Stempel waktu perubahan terakhir untuk item. Jika updateTime.field tidak ditetapkan ke suatu nilai, nilai untuk updateTime.defaultValue akan digunakan.
|
Bahasa konten | itemMetadata.contentLanguage.field=languageCode
itemMetadata.contentLanguage.defaultValue=
Bahasa konten untuk dokumen yang diindeks. Jika contentLanguage.field
tidak ditetapkan ke suatu nilai, nilai untuk contentLanguage.defaultValue akan digunakan.
|
Jenis MIME | itemMetadata.mimeType.field=mimeType
itemMetadata.mimeType.defaultValue=
Jenis mime asli ItemContent.content di repositori sumber. Panjang maksimum adalah 256 karakter. Jika mimeType.field tidak ditetapkan ke suatu nilai, nilai untuk
mimeType.defaultValue akan digunakan.
|
Metadata kualitas penelusuran | itemMetadata.searchQualityMetadata.quality.field=quality
itemMetadata.searchQualityMetadata.quality.defaultValue=
Indikasi kualitas item, digunakan untuk memengaruhi kualitas penelusuran. Nilai harus antara 0,0 (kualitas terendah) dan 1,0 (kualitas tertinggi). Nilai defaultnya adalah 0.0. Jika quality.field tidak ditetapkan ke suatu nilai, nilai untuk
quality.defaultValue akan digunakan.
|
Hash | itemMetadata.hash.field=hash
itemMetadata.hash.defaultValue=f0fda58630310a6dd91a7d8f0a4ceda2
Nilai hashing yang diberikan oleh pemanggil API. Ini dapat digunakan dengan metode items.push untuk menghitung status yang diubah. Panjang maksimum adalah 2.048 karakter. Jika hash.field tidak ditetapkan ke suatu nilai, nilai untuk
hash.defaultValue akan digunakan.
|
Format tanggal dan waktu
Format tanggal dan waktu menentukan format yang diharapkan dalam atribut metadata. Jika file konfigurasi tidak berisi parameter ini, nilai default akan digunakan. Tabel berikut menunjukkan parameter tersebut.
Setelan | Parameter |
Format datetime tambahan | structuredData.dateTimePatterns=MM/dd/uuuu HH:mm:ssXXX
Daftar pola java.time.format.DateTimeFormatter tambahan yang dipisahkan titik koma. Pola digunakan saat mengurai nilai string untuk kolom tanggal atau tanggal-waktu apa pun dalam metadata atau skema. Nilai defaultnya adalah daftar kosong, tetapi format RFC 3339 dan RFC 1123 selalu didukung.
|
Data terstruktur
Cloud Search Indexing API menyediakan layanan skema yang dapat Anda gunakan untuk menyesuaikan cara Cloud Search mengindeks dan menyalurkan data Anda. Jika menggunakan skema repositori lokal, Anda harus menentukan nama skema lokal data terstruktur.
Pembahasan | Parameter |
---|---|
Nama skema lokal | structuredData.localSchema=mySchemaName
Nama skema dibaca dari sumber data dan digunakan untuk data terstruktur repositori. Defaultnya adalah string kosong. |
Kualitas konten dan penelusuran
Untuk repositori yang berisi data atau konten berbasis kolom (seperti CRM, CVS, atau database), SDK memungkinkan pemformatan HTML otomatis untuk kolom data. Konektor Anda menentukan kolom data di awal eksekusi konektor, lalu menggunakan template konten untuk memformat setiap record data sebelum menguploadnya ke Cloud Search.
Template konten menentukan tingkat kepentingan dari setiap nilai kolom untuk penelusuran.
Kolom <title>
HTML wajib diisi dan ditetapkan sebagai prioritas tertinggi. Anda dapat
menetapkan tingkat kepentingan kualitas penelusuran untuk semua kolom konten lainnya:
tinggi, sedang, atau rendah. Setiap kolom konten yang tidak ditentukan dalam kategori tertentu ditetapkan secara default ke prioritas rendah.
Pembahasan | Parameter |
---|---|
Judul HTML konten | contentTemplate.templateName.title=myTitleField
Judul HTML konten dan kolom kualitas penelusuran tertinggi. Parameter ini diperlukan hanya jika Anda menggunakan template konten HTML. Nilai defaultnya adalah string kosong. |
Kualitas penelusuran tinggi untuk kolom konten | contentTemplate.templateName.quality.high=hField1,hField2
Kolom konten dengan prioritas penelusuran tinggi. Defaultnya adalah string kosong. |
Kualitas penelusuran sedang untuk kolom konten | contentTemplate.templateName.quality.medium=mField1,mField2
Kolom konten dengan prioritas penelusuran sedang. Defaultnya adalah string kosong. |
Kualitas penelusuran rendah untuk kolom konten | contentTemplate.templateName.quality.low=lField1,lField2
Kolom konten dengan prioritas penelusuran rendah. Defaultnya adalah string kosong. |
Kolom konten yang tidak ditentukan | contentTemplate.templateName.unmappedColumnsMode=value
Cara konektor menangani kolom konten yang tidak ditentukan. Nilai yang valid adalah:
|
Sertakan nama kolom di template HTML | contentTemplate.templateName.includeFieldName=true|false
Menentukan apakah akan menyertakan nama kolom bersama dengan data kolom di template
HTML. Defaultnya adalah |
Tidak biasa menyetel parameter
Anda tidak perlu menyetel parameter yang tercantum di bagian ini. Default parameter ditetapkan untuk performa yang optimal. Google tidak merekomendasikan untuk menetapkan parameter ini ke nilai yang berbeda dengan nilai default tanpa persyaratan khusus dalam repositori Anda.
Konfigurasi proxy
SDK ini memungkinkan Anda mengonfigurasi konektor agar menggunakan proxy untuk koneksi keluar.
Parameter transport.proxy.hostname
dan transport.proxy.port
diperlukan untuk mengaktifkan transport melalui proxy. Parameter lain mungkin diperlukan jika proxy Anda memerlukan autentikasi atau beroperasi melalui protokol SOCKS, bukan HTTP. Jika
transport.proxy.hostname
tidak ditetapkan, SDK tidak akan menggunakan proxy.
Pembahasan | Parameter |
---|---|
Nama host | transport.proxy.hostname=hostname
Nama host untuk server proxy. Parameter ini diperlukan saat menggunakan proxy. |
Port | transport.proxy.port=port
Nomor port untuk server proxy. Parameter ini diperlukan saat menggunakan proxy. |
Jenis proxy | transport.proxy.type=type
Jenis proxy. Nilai yang valid adalah:
Nilai default-nya adalah |
Nama pengguna | transport.proxy.username=username
Nama pengguna yang akan digunakan saat membuat token otorisasi proxy. Parameter ini bersifat opsional, dan hanya boleh ditetapkan jika proxy Anda memerlukan autentikasi. |
Sandi | transport.proxy.password=password
Kata sandi yang akan digunakan ketika membuat token otorisasi proxy. Parameter ini bersifat opsional, dan hanya boleh ditetapkan jika proxy Anda memerlukan autentikasi. |
Traverser
SDK ini memungkinkan Anda menentukan beberapa traverser individual untuk memungkinkan traversal paralel repositori data. Konektor template SDK menggunakan fitur ini.
Pembahasan | Parameter |
---|---|
Ukuran kumpulan thread | traverse.threadPoolSize=size
Jumlah thread yang dibuat konektor untuk memungkinkan pemrosesan paralel. Iterator tunggal mengambil operasi secara serial (biasanya objek RepositoryDoc), tetapi API memanggil proses secara paralel menggunakan jumlah thread ini. Nilai default-nya adalah |
Ukuran partisi | traverse.partitionSize=batchSize
Jumlah Nilai default-nya adalah |
Permintaan polling penjelajah
Inti dari antrean pengindeksan Cloud Search adalah antrean prioritas yang berisi entri untuk setiap item yang diketahui ada. Konektor listingan dapat meminta untuk melakukan polling item dari Indexing API. Permintaan polling mendapatkan entri prioritas tertinggi dari antrean pengindeksan.
Parameter berikut digunakan oleh template konektor listingan SDK untuk menentukan parameter polling.
Pembahasan | Parameter |
---|---|
Traverser repositori | repository.traversers=t1, t2, t3, ...
Membuat satu atau beberapa traverser individual dengan t1, t2, t3,
... adalah nama unik masing-masing. Setiap traverser bernama memiliki kumpulan setelannya sendiri yang diidentifikasi menggunakan nama unik traverser, seperti |
Antrean untuk di-polling | traverser.pollRequest.queue=mySpecialQueue
Nama antrean yang di-polling oleh traverser ini. Defaultnya adalah string kosong (menyiratkan "default"). |
traverser.t1.pollRequest.queue=mySpecialQueue
Jika Anda memiliki beberapa traverser, tetapkan status item untuk setiap traverser (dengan t1, mewakili traverser tertentu). |
|
Perilaku polling | traverser.pollRequest.limit=maxItems
Jumlah maksimum item yang akan ditampilkan dari permintaan polling.
Nilai defaultnya adalah |
traverser.t1.pollRequest.limit=limit
Jika Anda memiliki beberapa traverser, tetapkan status item untuk setiap traverser (dengan t1, mewakili traverser tertentu). |
|
Status item | traverser.pollRequest.statuses=statuses
Status item tertentu yang di-polling oleh traverser ini, dengan statuses dapat berupa kombinasi |
traverser.t1.pollRequest.statuses=statusesForThisTraverser
Jika Anda memiliki beberapa traverser, tetapkan status item untuk setiap traverser (dengan t1, mewakili traverser tertentu). | |
Beban host | traverser.hostload=threads
Jumlah maksimum thread paralel aktif yang tersedia untuk polling. Nilai defaultnya
adalah |
traverser.t1.hostload=threadsForThisTraverser
Jika Anda memiliki beberapa traverser, tetapkan status item untuk setiap traverser (dengan t1, mewakili traverser tertentu). |
|
Waktu tunggu | traverser.timeout=timeout
Nilai waktu tunggu untuk menginterupsi upaya polling traverser ini. Nilai default-nya adalah |
traverser.t1.timeout=timeoutForThisTraverser
Jika Anda memiliki beberapa traverser, tetapkan status item untuk setiap traverser (dengan t1, mewakili traverser tertentu). |
|
traverser.timeunit=timeoutUunit
Unit waktu tunggu. Nilai yang valid adalah |
|
traverser.t1.timeunit=timeoutUnit
Jika Anda memiliki beberapa traverser, tetapkan status item untuk setiap traverser (dengan t1, mewakili traverser tertentu). |
Umumnya, konektor yang menggunakan template konektor listingan SDK hanya memerlukan satu kumpulan parameter untuk polling. Dalam beberapa kasus, Anda mungkin perlu menentukan lebih dari satu kriteria polling jika algoritma traversal Anda memerlukan pemisahan pemrosesan item menggunakan antrean yang berbeda, misalnya.
Dalam hal ini, Anda memiliki opsi untuk menentukan beberapa kumpulan parameter polling. Mulailah dengan menentukan nama set parameter menggunakan
repository.traversers
. Untuk setiap nama traverser yang ditentukan, sediakan file konfigurasi dengan parameter dalam tabel di atas yang mengganti t1
dengan nama traverser. Tindakan ini akan menghasilkan serangkaian parameter polling untuk setiap traverser yang ditentukan.
Checkpoint
Checkpoint berguna untuk melacak status traversal inkremental.
Pembahasan | Parameter |
---|---|
Direktori checkpoint | connector.checkpointDirectory=/path/to/checkpoint
Menentukan jalur ke direktori lokal yang akan digunakan untuk checkpoint traversal inkremental dan penuh. |
Upload konten
Konten item diupload ke Cloud Search dengan item jika ukuran konten tidak melebihi batas yang ditentukan. Jika ukuran konten melebihi batas, konten akan diupload secara terpisah dari metadata dan data terstruktur item.
Pembahasan | Parameter |
---|---|
Nilai minimum konten | api.contentUploadThresholdBytes=bytes
Nilai minimum untuk konten yang menentukan apakah konten diupload "sebaris" dengan item atau menggunakan upload terpisah. Nilai defaultnya adalah |
Container
Template konektor lengkap menggunakan algoritma yang melibatkan konsep tombol antrean sumber data sementara untuk mendeteksi data yang dihapus dalam database. Artinya, pada setiap traversal penuh, record yang diambil, yang berada dalam antrean baru, akan menggantikan semua record Cloud Search yang ada yang diindeks dari traversal sebelumnya, yang berada dalam antrean lama.
Pembahasan | Parameter |
---|---|
Tag nama penampung | traverse.queueTag=instance
Untuk menjalankan beberapa instance konektor secara paralel untuk mengindeks repositori data umum (baik pada repositori data yang berbeda maupun di bagian terpisah dari repositori data umum) tanpa mengganggu satu sama lain, tetapkan tag nama container yang unik ke setiap pengoperasian konektor. Tag nama unik mencegah instance konektor menghapus record orang lain. Tag nama ditambahkan ke ID antrean tombol alih Konektor Traversal Penuh. |
Nonaktifkan deteksi hapus | traverse.useQueues=true|false
Menunjukkan apakah konektor menggunakan logika beralih antrean untuk deteksi penghapusan. Nilai defaultnya adalah Catatan: Parameter konfigurasi ini hanya berlaku untuk konektor yang menerapkan template |
Kebijakan batch
SDK mendukung kebijakan batch yang memungkinkan Anda melakukan tindakan berikut:
- Permintaan batch
- Menentukan jumlah permintaan dalam antrean batch
- Mengelola batch yang dieksekusi secara serentak
- Menghapus permintaan batch
SDK mengelompokkan permintaan konektor untuk mempercepat throughput selama proses upload. Pemicu SDK untuk mengupload batch permintaan dapat berdasarkan jumlah permintaan atau waktu tunggu, mana saja yang lebih dulu terjadi. Misalnya, jika waktu penundaan batch telah berakhir tanpa mencapai ukuran tumpukan, atau jika jumlah item ukuran tumpukan tercapai sebelum waktu tunda berakhir, upload batch akan dipicu.
Pembahasan | Parameter |
---|---|
Permintaan batch | batch.batchSize
Mengelompokkan permintaan sekaligus. Nilai default-nya adalah |
Jumlah permintaan dalam antrean batch | batch.maxQueueLength=maxQueueLength
Jumlah maksimum permintaan dalam antrean batch untuk dieksekusi.
Nilai defaultnya adalah |
Menjalankan batch secara bersamaan | batch.maxActiveBatches=maxActiveBatches
Jumlah batch yang dapat dieksekusi secara serentak yang diizinkan.
Nilai default-nya adalah |
Menghapus permintaan batch secara otomatis | batch.maxBatchDelaySeconds=maxBatchDelay
Jumlah detik untuk menunggu sebelum permintaan batch
dihapus secara otomatis. Nilai defaultnya adalah |
Menghapus batch permintaan saat penonaktifan | batch.flushOnShutdown=true|false
Menghapus batch permintaan selama penonaktifan layanan.
Nilai defaultnya adalah |
Pengendali pengecualian
Parameter pengendali pengecualian menentukan cara pelintas melanjutkan setelah menemukan pengecualian.
Pembahasan | Parameter |
---|---|
Petunjuk Traverser jika terjadi error | traverse.exceptionHandler=exceptions
Cara pengguna traverser melanjutkan setelah pengecualian dilempar. Nilai yang valid adalah:
|
Waktu tunggu antar-pengecualian | abortExceptionHander.backoffMilliSeconds=backoff
Waktu backoff dalam milidetik untuk menunggu di antara pengecualian pengendali yang terdeteksi (biasanya digunakan saat melintasi repositori). Nilai default-nya adalah |