每個連接器都有一個相關的設定檔,其中包含連接器使用的參數
例如存放區的 ID參數是以鍵/值組合定義,例如
api.sourceId=1234567890abcdef
。
Google Cloud Search SDK 包含多項 Google 提供的設定 參數。Google 提供的設定參數中 您只需要在原始碼中定義資料來源存取權參數 設定檔您不需要在 設定檔 (「除非」您想要覆寫預設值)。
本參考資料說明 Google 提供的設定參數。
設定檔範例
以下範例顯示包含參數鍵/值組合的身分設定檔。
# # 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
通常會設定的參數
本節列出必要及選擇性的常用設定參數。如果您不 如要變更選擇性參數的值,連接器會使用預設值 SDK 提供的功能
資料來源存取權
下表列出了設定中需要顯示的所有參數 檔案。您使用的參數取決於您建立的連接器類型 (內容連接器) 或識別資訊連接器)。
設定 | 參數 |
---|---|
資料來源 ID | api.sourceId=1234567890abcdef
連接器需要這個參數,才能識別 存放區的所在位置如果 在搜尋中加入資料來源。 此參數必須位於連接器設定檔中。 |
識別資訊來源 ID | api.identitySourceId=0987654321lmnopq
識別資訊連接器必須使用這個參數,才能識別 外部識別資訊來源的位置您在 在 Cloud Search 中對應使用者身分。 所有識別資訊連接器設定檔都必須含有這個參數。 |
服務帳戶私密金鑰檔案 | api.serviceAccountPrivateKeyFile=./PrivateKey.json
這個參數包含所需的私密金鑰 存取存放區您在 設定了 Google Cloud Search REST 的存取權 API。所有設定檔都必須包含這個參數。 |
服務帳戶 ID | api.serviceAccountId=123abcdef4567890
這個參數會指定服務帳戶 編號。只有在設定檔時才允許預設的空白字串值 會指定私密金鑰檔案參數。如果您的私密金鑰檔案,此為必要參數 並非 JSON 金鑰。 |
Google Workspace 帳戶 ID | api.customerId=123abcdef4567890
這個參數可指定企業 Google Workspace 帳戶的帳戶 ID。您取得了 也就是用在對應使用者 以及在 Cloud Search 中的身分使用以下參數同步處理使用者時,必須提供這個參數 識別資訊連接器 |
根網址 | api.rootUrl=baseURLPath
這個參數會指定索引服務的基本網址路徑。 此參數的預設值是空字串,並會轉換為
|
週遊時間表
排程參數會決定連接器在 反向傳播
設定 | 參數 |
---|---|
連接器啟動時的完整週遊 | schedule.performTraversalOnStart=true|false
連接器會在連接器啟動時執行完整的周遊,
等待第一次間隔過期預設值為 |
間隔後完整週遊 | schedule.traversalIntervalSecs=intervalInSeconds
連接器會在指定的時間間隔後執行完整的周遊。請指定
週遊之間的間隔時間,以秒為單位預設值為 |
一週遍歷後結束 | connector.runOnce=true|false
連接器會執行一次完整的周遊,然後關閉。這個參數應該只會
如果採用完整的周遊策略,請將值設為 |
間隔後漸進式週遊 | schedule.incrementalTraversalIntervalSecs=intervalInSeconds
連接器會在指定的時間間隔後執行漸進式週遊。
指定週遊的間隔秒數。預設值為
|
排定的輪詢佇列間隔 | schedule.pollQueueIntervalSecs=interval_in_seconds
排程輪詢佇列間隔 (以秒為單位) 之間的間隔。這會使用
僅由列表週遊連接器傳回。預設值為 |
存取控制清單 (ACL)
連接器會使用 ACL 控制項目的存取權。多個參數 可讓您透過 ACL 保護使用者存取已編入索引的記錄。
如果您的存放區有與每個項目相關聯的個別 ACL 資訊, 上傳所有 ACL 資訊,藉此控管 Cloud Search 中的項目存取權。如果 存放區僅提供部分或不包含 ACL 資訊,您可以提供預設值 包含下列參數中的 ACL 資訊,SDK 會將該參數提供給 。
設定 | 參數 |
---|---|
ACL 模式 | defaultAcl.mode=mode
決定套用預設 ACL 的時機。有效值:
預設模式為 |
預設公開 ACL | defaultAcl.public=true|false
整個存放區的預設 ACL 為公開網域存取權。
預設值為 |
常用 ACL 群組讀取者 | defaultAcl.readers.groups=google:group1@mydomain.com,
group2 |
常用 ACL 讀取者 | defaultAcl.readers.users=user1, user2,
google:user3@mydomain.com |
常見的 ACL 拒絕群組讀取者 | defaultAcl.denied.groups=group3 |
常見 Acl 拒絕的讀取者 | defaultAcl.denied.users=user4, user5 |
整個網域存取權 | 如何指定每位使用者都能公開存取每筆已建立索引的記錄
請用值設定以下兩個參數:
|
常見的定義的 ACL | 如要為資料存放區的每筆記錄指定一個 ACL,請將
下列參數值:
|
中繼資料設定參數
部分項目中繼資料可以設定。連接器可以在 建立索引如果連接器未設定欄位,則會使用設定檔中的參數 設定欄位。
設定檔的
.field
後置字串,例如
itemMetadata.title.field=movieTitle
。如果這些
參數,用於設定中繼資料欄位。如果沒有
中繼資料參數,則會使用帶有
.defaultValue
後置字串)。
下表顯示中繼資料設定參數。
設定 | 參數 |
標題 | itemMetadata.title.field=movieTitle 敬上
itemMetadata.title.defaultValue= 敬上
項目名稱。如果 title.field 未設為值,
已使用 title.defaultValue 。
|
原始碼存放區網址 | itemMetadata.sourceRepositoryUrl.field=url 敬上
itemMetadata.sourceRepositoryUrl.defaultValue=https://www.imdb.com/title/tt0031381/ 敬上
搜尋結果中使用的項目網址。您只需將 defaultValue 設為
整個存放區的網址,例如您的頁面是 CSV 檔案,但只有一個檔案
每個項目的網址。如未設定 sourceRepositoryUrl.field
為值,則會使用 sourceRepositoryUrl.defaultValue 的值。
|
容器名稱 | itemMetadata.containerName.field=containerName 敬上
itemMetadata.containerName.defaultValue=myDefaultContainerName 敬上
項目容器的名稱,例如檔案系統目錄或資料夾的名稱。如果 containerName.field 未設為值。
已使用 containerName.defaultValue 。
|
物件類型 | itemMetadata.objectType.field=type
itemMetadata.objectType.defaultValue= 敬上
連接器所使用的物件類型,如 結構定義。 如未指定這項屬性,連接器就不會為任何結構化資料建立索引。 如果 objectType.field 未設為值,
使用的是 objectType.defaultValue 。
|
建立時間 | itemMetadata.createTime.field=releaseDate 敬上
itemMetadata.createTime.defaultValue=1940-01-17 敬上
文件建立時間戳記。如果 createTime.field 未設為值,
createTime.defaultValue 的值。
|
更新時間 | itemMetadata.updateTime.field=releaseDate 敬上
itemMetadata.updateTime.defaultValue=1940-01-17 敬上
項目上次修改時間戳記。如果 updateTime.field 未設為
值,會使用 updateTime.defaultValue 的值。
|
內容語言 | itemMetadata.contentLanguage.field=languageCode 敬上
itemMetadata.contentLanguage.defaultValue= 敬上
已建立索引文件的內容語言。如果 contentLanguage.field
未設定值,就會使用 contentLanguage.defaultValue 的值。
|
MIME 類型 | itemMetadata.mimeType.field=mimeType 敬上
itemMetadata.mimeType.defaultValue= 敬上
來源存放區中 ItemContent.content 的原始 MIME 類型。長度上限是 256 個半形字元,如果 mimeType.field 未設為值,
已使用 mimeType.defaultValue 。
|
搜尋品質中繼資料 | itemMetadata.searchQualityMetadata.quality.field=quality 敬上
itemMetadata.searchQualityMetadata.quality.defaultValue= 敬上
項目品質,用來影響搜尋品質。值應為 最低品質介於 0.0 到 1.0 之間 (最高畫質)。預設值為 0.0。如果 「 quality.field 」未設為值。
已使用 quality.defaultValue 。
|
雜湊 | itemMetadata.hash.field=hash 敬上
itemMetadata.hash.defaultValue=f0fda58630310a6dd91a7d8f0a4ceda2 敬上
API 呼叫端提供的 雜湊值。這可與 items.push 方法,計算修改後的狀態。長度上限為 2048 個字元
字元。如果 hash.field 未設為值,
已使用 hash.defaultValue 。
|
日期時間格式
日期時間格式會指定中繼資料屬性中預期的格式。如果設定檔 不含這個參數,系統會使用預設值。下表顯示此參數。
設定 | 參數 |
其他日期時間格式 | structuredData.dateTimePatterns=MM/dd/uuuu HH:mm:ssXXX 敬上
以半形分號分隔的其他 java.time.format.DateTimeFormatter 清單
例如模式剖析任何日期或日期時間欄位的字串值時,系統會使用模式
在中繼資料或結構定義中
使用相同標籤預設值為空白清單,但 RFC 3339 和 RFC 1123
。
|
結構化資料
您可以透過 Cloud Search Indexing API 提供的結構定義服務, 您可以自訂 Cloud Search 建立索引及提供資料的方式。如果您使用 本機存放區結構定義,您必須指定本機儲存的結構化資料 結構定義名稱
設定 | 參數 |
---|---|
本機結構定義名稱 | structuredData.localSchema=mySchemaName
系統會從資料來源讀取結構定義名稱,並用於存放區 結構化資料, 預設值為空字串。 |
內容和搜尋品質
適用於包含記錄或欄位型內容的存放區 (例如客戶關係管理系統、CVS、 或資料庫),SDK 允許自動為資料欄位設定 HTML 格式。您的 連接器會定義連接器執行一開始的資料欄位,以及 然後使用內容範本設定每筆資料記錄的格式,再將記錄傳送至 Cloud Search
內容範本定義了每個欄位值進行搜尋的重要性。
HTML <title>
] 欄位,並定義為最高優先順序。你可以
為所有其他內容欄位指定搜尋品質的重要性等級:
高、中或低特定類別中未定義的任何內容欄位
並預設為低優先順序。
設定 | 參數 |
---|---|
內容 HTML 標題 | contentTemplate.templateName.title=myTitleField
內容 HTML 標題和最高搜尋品質欄位。必須提供這個參數 只有在使用 HTML 內容範本時才會發生預設值為空白 字串。 |
內容欄位適用的高搜尋品質 | contentTemplate.templateName.quality.high=hField1,hField2
搜尋優先順序較高的內容欄位。預設值為空字串。 |
內容欄位的搜尋品質中等 | contentTemplate.templateName.quality.medium=mField1,mField2
指定為中度搜尋優先順序的內容欄位。預設值為空字串。 |
內容欄位搜尋品質不佳 | contentTemplate.templateName.quality.low=lField1,lField2
搜尋優先順序偏低的內容欄位。預設值為空字串。 |
未指定的內容欄位 | contentTemplate.templateName.unmappedColumnsMode=value
連接器如何處理未指定的內容欄位。有效的值包括:
|
在 HTML 範本中加入欄位名稱 | contentTemplate.templateName.includeFieldName=true|false
指定 HTML 中是否要納入欄位名稱與欄位資料
範本。預設值為 |
不常見的設定參數
您很少需要設定這個部分中列出的參數。參數的預設值是 可達到最佳成效Google 不建議您將這些參數設為 設定與預設值不同的 Cloud Storage 也提供目錄同步處理功能
Proxy 配置
SDK 可讓您設定連接器,在連出連線中使用 Proxy。
transport.proxy.hostname
和 transport.proxy.port
參數為
啟用通過 Proxy 傳輸所需的憑證可能還需要其他參數
是否需要透過 SOCKS 通訊協定 (而非 HTTP) 進行驗證或運作。如果
未設定 transport.proxy.hostname
,SDK 不會使用 Proxy。
設定 | 參數 |
---|---|
主機名稱 | transport.proxy.hostname=hostname
Proxy 伺服器的主機名稱。使用 Proxy 時,必須提供這個參數。 |
通訊埠 | transport.proxy.port=port
Proxy 伺服器的通訊埠號碼。使用 Proxy 時,必須提供這個參數。 |
Proxy 類型 | transport.proxy.type=type
Proxy 類型。有效的值包括:
預設值為 |
使用者名稱 | transport.proxy.username=username
建構 Proxy 授權權杖時使用的使用者名稱, 此參數為選用項目,建議只在您的 Proxy 需要驗證的情況下設定。 |
密碼 | transport.proxy.password=password
建構 Proxy 授權權杖時使用的密碼, 此參數為選用項目,建議只在您的 Proxy 需要驗證的情況下設定。 |
週遊者
SDK 可讓您指定多個 資料存放區的平行週遊功能SDK 範本連接器會使用 而不是每個特徵的分數
設定 | 參數 |
---|---|
執行緒集區大小 | traverse.threadPoolSize=size
連接器建立允許平行處理的執行緒數量。A 罩杯 單一疊代器依序擷取作業 (通常是 RepositoryDoc 物件), 但 API 會使用這個數量的執行緒數量,並行處理程序。 預設值為 |
分區大小 | traverse.partitionSize=batchSize
預設值為 |
路人投票要求
Cloud Search 索引佇列的核心是優先佇列,內含 每個已知項目的項目清單項目連接器可以要求意見調查 個索引 API 套用的項目意見調查要求會取得優先順序最高的項目 從索引佇列中移除
SDK 清單連接器範本會使用下列參數, 會定義輪詢參數
設定 | 參數 |
---|---|
存放區週遊 | repository.traversers=t1, t2, t3, ...
建立一或多位個別週遊,包括 t1、t2、t3、
... 是每個欄位的專屬名稱。每個指定的周遊者都有各自的一組設定
這些功能是以周遊者的獨特名稱識別,例如
《 |
接受輪詢的工作佇列 | traverser.pollRequest.queue=mySpecialQueue
這項週遊輪詢的佇列名稱。預設值為空白字串 (即 「預設」)。 |
traverser.t1.pollRequest.queue=mySpecialQueue
如果有多位週遊者,請為每位週遊者設定項目狀態 (其中 t1 代表特定週遊)。 |
|
輪詢行為 | traverser.pollRequest.limit=maxItems
透過輪詢要求傳回的項目數量上限。
預設值為 |
traverser.t1.pollRequest.limit=limit
如果有多位週遊者,請為每位週遊者設定項目狀態 (其中 t1 代表特定週遊)。 |
|
項目狀態 | traverser.pollRequest.statuses=statuses
這項週遊輪詢的特定項目狀態,statuses 可以
任何 |
traverser.t1.pollRequest.statuses=statusesForThisTraverser
如果有多位週遊者,請為每位週遊者設定項目狀態 (其中 t1、 代表特定週遊程序)。 | |
主機負載 | traverser.hostload=threads
用於輪詢的有效平行執行緒數量上限。預設
值為 |
traverser.t1.hostload=threadsForThisTraverser
如果有多位週遊者,請為每位週遊者設定項目狀態 (其中 t1、 代表特定週遊程序)。 |
|
逾時 | traverser.timeout=timeout
中斷這項遍歷調查嘗試的逾時值。 預設值為 |
traverser.t1.timeout=timeoutForThisTraverser
如果有多位週遊者,請為每位週遊者設定項目狀態 (其中 t1、 代表特定週遊程序)。 |
|
traverser.timeunit=timeoutUunit
逾時單位。有效值為 |
|
traverser.t1.timeunit=timeoutUnit
如果有多位週遊者,請為每位週遊者設定項目狀態 (其中 t1、 代表特定週遊程序)。 |
在大多數情況下,只有使用 SDK 清單連接器範本的連接器 需要一組一組參數才能輪詢。在某些情況下,您可能需要 定義多個輪詢條件 (適用於遍歷演算法要求) 例如使用不同的佇列區隔項目處理程序。
在這種情況下,您可以選擇定義多組輪詢
參數。首先,使用
repository.traversers
。針對每個已定義的遍歷名稱,提供
換成上表中的參數,並將
t1
為週遊名稱。此程序會建立一組輪詢
參數。
檢查站
查核點很適合用來追蹤漸進式週遊的狀態。
設定 | 參數 |
---|---|
檢查點目錄 | connector.checkpointDirectory=/path/to/checkpoint
指定用於漸進式和完整週遊檢查點的本機目錄路徑。 |
上傳內容
在 內容大小未超過指定門檻。如果內容大小 超過門檻,內容會與作品的 中繼資料和結構化資料
設定 | 參數 |
---|---|
內容門檻 | api.contentUploadThresholdBytes=bytes
決定上傳內容是否「內嵌」的門檻同時 而非單獨上傳物件 預設值為 |
容器
完整連接器範本使用的演算法 暫時性資料來源佇列切換鈕,用於偵測資料庫中已刪除的記錄。 也就是說,每次完整週遊時,擷取到的記錄中 新佇列,替換所有已建立索引的現有 Cloud Search 記錄, 也就是舊佇列中的過去週遊。
設定 | 參數 |
---|---|
容器名稱標記 | traverse.queueTag=instance
同時執行多個連接器執行個體,為共用資料建立索引 存放區 (無論是在不同資料存放區上,還是要區分共用資料的 資料存放庫) 而不用彼此幹擾,請指派不重複的容器 命名連接器。不重複的名稱標記可防止連接器 執行個體。 名稱標記會加到「Full Traversal Connector」切換佇列 ID。 |
停用刪除偵測功能 | traverse.useQueues=true|false
指出連接器是否使用佇列切換邏輯執行刪除偵測。 預設值為 注意:這個設定參數僅適用於連接器
實作 |
批次政策
SDK 支援批次政策,可讓您執行下列操作: 動作:
- 批次處理要求
- 指定批次佇列中的要求數量
- 管理並行執行的批次作業
- 清除批次要求
SDK 會在期間批次傳送連接器的要求,以加快處理量 上傳。上傳一批請求的 SDK 觸發條件是 或逾時 (以先發生者為準)。舉例來說, 超過批量,或者 項目在延遲到期前達到的批量項目, 就會觸發批次上傳
設定 | 參數 |
---|---|
批次處理要求 | batch.batchSize
批次處理要求。預設值為 |
批次佇列中的要求數量 | batch.maxQueueLength=maxQueueLength
批次佇列中要執行的要求數量上限。
預設值為 |
同時執行批次作業 | batch.maxActiveBatches=maxActiveBatches
可並行執行的批次作業數量。
預設值為 |
自動清除批次要求 | batch.maxBatchDelaySeconds=maxBatchDelay
批次要求完成前的等待秒數
因此會自動修正
預設值為 |
關機時清除批次要求 | batch.flushOnShutdown=true|false
在服務關閉期間清除批次要求。
預設值為 |
例外狀況處理常式
例外狀況處理常式參數會決定週遊程序在事後繼續進行的方式 就會發生例外狀況
設定 | 參數 |
---|---|
發生錯誤時提供的走路者指示 | traverse.exceptionHandler=exceptions
擲回例外狀況後,週遊程序應如何進行。有效值 是:
|
例外狀況之間的等待時間 | abortExceptionHander.backoffMilliSeconds=backoff
在偵測到的處理常式例外狀況之間等待的輪詢時間 (以毫秒為單位)
(通常用於掃遍存放區)。預設值為 |