Google 提供的設定參數

每個連接器都有一個相關的設定檔,其中包含連接器使用的參數 例如存放區的 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

這個參數會指定索引服務的基本網址路徑。

此參數的預設值是空字串,並會轉換為 https://cloudsearch.googleapis.com

週遊時間表

排程參數會決定連接器在 反向傳播

設定 參數
連接器啟動時的完整週遊 schedule.performTraversalOnStart=true|false

連接器會在連接器啟動時執行完整的周遊, 等待第一次間隔過期預設值為 true.

間隔後完整週遊 schedule.traversalIntervalSecs=intervalInSeconds

連接器會在指定的時間間隔後執行完整的周遊。請指定 週遊之間的間隔時間,以秒為單位預設值為 86400。 (一天的秒數)。

一週遍歷後結束 connector.runOnce=true|false

連接器會執行一次完整的周遊,然後關閉。這個參數應該只會 如果採用完整的周遊策略,請將值設為 true;商店資訊和圖表 策略需要多次週遊才能偵測變更並建立索引。預設 值為 false (請勿單次週遊後離開)。

間隔後漸進式週遊 schedule.incrementalTraversalIntervalSecs=intervalInSeconds

連接器會在指定的時間間隔後執行漸進式週遊。 指定週遊的間隔秒數。預設值為 300 (5 分鐘內的秒數)。

排定的輪詢佇列間隔 schedule.pollQueueIntervalSecs=interval_in_seconds

排程輪詢佇列間隔 (以秒為單位) 之間的間隔。這會使用 僅由列表週遊連接器傳回。預設值為 10.

存取控制清單 (ACL)

連接器會使用 ACL 控制項目的存取權。多個參數 可讓您透過 ACL 保護使用者存取已編入索引的記錄。

如果您的存放區有與每個項目相關聯的個別 ACL 資訊, 上傳所有 ACL 資訊,藉此控管 Cloud Search 中的項目存取權。如果 存放區僅提供部分或不包含 ACL 資訊,您可以提供預設值 包含下列參數中的 ACL 資訊,SDK 會將該參數提供給 。

設定 參數
ACL 模式 defaultAcl.mode=mode

決定套用預設 ACL 的時機。有效值:

  • none:不使用預設 ACL (在這個模式下,記錄會 無法搜尋,除非您定義個別 ACL
  • fallback:僅在沒有 ACL 的情況下使用預設 ACL
  • append:將預設 ACL 新增至現有 ACL
  • override:將現有的 ACL 替換為預設 ACL

預設模式為 none

預設公開 ACL defaultAcl.public=true|false

整個存放區的預設 ACL 為公開網域存取權。 預設值為 false.

常用 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
整個網域存取權 如何指定每位使用者都能公開存取每筆已建立索引的記錄 請用值設定以下兩個參數:
  • defaultAcl.mode=override
  • defaultACL.public=true
常見的定義的 ACL 如要為資料存放區的每筆記錄指定一個 ACL,請將 下列參數值:
  • defaultAcl.mode=fallback
  • defaultAcl.public=false
  • defaultAcl.readers.groups=google:group1@mydomain.com, group2 code>
  • defaultAcl.readers.users=user1@mydomain.com, user2, google:user3@mydomain.com
  • defaultAcl.denied.groups=group3
  • defaultAcl.denied.users=user4, user5

    系統會將每個指定使用者和群組都假設為本機網域 使用者/群組,除非前置字串開頭為「google:」(常值常數)。

    預設使用者或群組為空白字串。僅提供使用者和群組參數 將 defaultAcl.public 設為 false。列出多個項目 群組和使用者,請使用逗號分隔的清單。

    如果將 defaultAcl.mode 設為 none,記錄會處於 沒有定義個別 ACL 即無法復原。

中繼資料設定參數

部分項目中繼資料可以設定。連接器可以在 建立索引如果連接器未設定欄位,則會使用設定檔中的參數 設定欄位。

設定檔的 .field 後置字串,例如 itemMetadata.title.field=movieTitle。如果這些 參數,用於設定中繼資料欄位。如果沒有 中繼資料參數,則會使用帶有 .defaultValue 後置字串)。

下表顯示中繼資料設定參數。

設定 參數
標題 itemMetadata.title.field=movieTitle敬上
itemMetadata.title.defaultValue=Gone with the Wind敬上
項目名稱。如果 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=movie敬上
連接器所使用的物件類型,如 結構定義。 如未指定這項屬性,連接器就不會為任何結構化資料建立索引。
如果 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=en-US敬上
已建立索引文件的內容語言。如果contentLanguage.field 未設定值,就會使用 contentLanguage.defaultValue 的值。
MIME 類型 itemMetadata.mimeType.field=mimeType敬上
itemMetadata.mimeType.defaultValue=image/bmp敬上
來源存放區中 ItemContent.content 的原始 MIME 類型。長度上限是 256 個半形字元,如果 mimeType.field 未設為值, 已使用 mimeType.defaultValue
搜尋品質中繼資料 itemMetadata.searchQualityMetadata.quality.field=quality敬上
itemMetadata.searchQualityMetadata.quality.defaultValue=1敬上
項目品質,用來影響搜尋品質。值應為 最低品質介於 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

連接器如何處理未指定的內容欄位。有效的值包括:

  • APPEND:將未指定的內容欄位附加至範本
  • IGNORE:忽略未指定的內容欄位

    預設值為 APPEND

在 HTML 範本中加入欄位名稱 contentTemplate.templateName.includeFieldName=true|false

指定 HTML 中是否要納入欄位名稱與欄位資料 範本。預設值為 true,且欄位名稱可供搜尋 做為內容資料的一部分

不常見的設定參數

您很少需要設定這個部分中列出的參數。參數的預設值是 可達到最佳成效Google 不建議您將這些參數設為 設定與預設值不同的 Cloud Storage 也提供目錄同步處理功能

Proxy 配置

SDK 可讓您設定連接器,在連出連線中使用 Proxy。

transport.proxy.hostnametransport.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 類型。有效的值包括:

  • HTTP:Proxy 會透過 HTTP 接受及轉送要求。
  • SOCKS:Proxy 會透過 SOCKS 通訊協定接受及轉送封包。

預設值為 HTTP

使用者名稱 transport.proxy.username=username

建構 Proxy 授權權杖時使用的使用者名稱, 此參數為選用項目,建議只在您的 Proxy 需要驗證的情況下設定。

密碼 transport.proxy.password=password

建構 Proxy 授權權杖時使用的密碼, 此參數為選用項目,建議只在您的 Proxy 需要驗證的情況下設定。

週遊者

SDK 可讓您指定多個 資料存放區的平行週遊功能SDK 範本連接器會使用 而不是每個特徵的分數

設定 參數
執行緒集區大小 traverse.threadPoolSize=size

連接器建立允許平行處理的執行緒數量。A 罩杯 單一疊代器依序擷取作業 (通常是 RepositoryDoc 物件), 但 API 會使用這個數量的執行緒數量,並行處理程序。

預設值為 5

分區大小 traverse.partitionSize=batchSize

ApiOperation()數量 ,在擷取額外的 APIOperation 前分批處理。

預設值為 50

路人投票要求

Cloud Search 索引佇列的核心是優先佇列,內含 每個已知項目的項目清單項目連接器可以要求意見調查 個索引 API 套用的項目意見調查要求會取得優先順序最高的項目 從索引佇列中移除

SDK 清單連接器範本會使用下列參數, 會定義輪詢參數

設定 參數
存放區週遊 repository.traversers=t1, t2, t3, ...

建立一或多位個別週遊,包括 t1t2t3... 是每個欄位的專屬名稱。每個指定的周遊者都有各自的一組設定 這些功能是以周遊者的獨特名稱識別,例如 《traversers.t1.hostload》和《traversers.t2.hostload》。

接受輪詢的工作佇列 traverser.pollRequest.queue=mySpecialQueue

這項週遊輪詢的佇列名稱。預設值為空白字串 (即 「預設」)。

traverser.t1.pollRequest.queue=mySpecialQueue

如果有多位週遊者,請為每位週遊者設定項目狀態 (其中 t1 代表特定週遊)。

輪詢行為 traverser.pollRequest.limit=maxItems

透過輪詢要求傳回的項目數量上限。 預設值為 0 (表示 API 上限)。

traverser.t1.pollRequest.limit=limit

如果有多位週遊者,請為每位週遊者設定項目狀態 (其中 t1 代表特定週遊)。

項目狀態 traverser.pollRequest.statuses=statuses

這項週遊輪詢的特定項目狀態,statuses 可以 任何 MODIFIED, NEW_ITEM 的組合 (以半形逗號分隔),預設值為 空白字串 (包含所有狀態值)。

traverser.t1.pollRequest.statuses=statusesForThisTraverser

如果有多位週遊者,請為每位週遊者設定項目狀態 (其中 t1、 代表特定週遊程序)。

主機負載 traverser.hostload=threads

用於輪詢的有效平行執行緒數量上限。預設 值為 5.

traverser.t1.hostload=threadsForThisTraverser

如果有多位週遊者,請為每位週遊者設定項目狀態 (其中 t1、 代表特定週遊程序)。

逾時 traverser.timeout=timeout

中斷這項遍歷調查嘗試的逾時值。

預設值為 60

traverser.t1.timeout=timeoutForThisTraverser

如果有多位週遊者,請為每位週遊者設定項目狀態 (其中 t1、 代表特定週遊程序)。

traverser.timeunit=timeoutUunit

逾時單位。有效值為 SECONDS, MINUTES,

traverser.t1.timeunit=timeoutUnit

如果有多位週遊者,請為每位週遊者設定項目狀態 (其中 t1、 代表特定週遊程序)。

在大多數情況下,只有使用 SDK 清單連接器範本的連接器 需要一組一組參數才能輪詢。在某些情況下,您可能需要 定義多個輪詢條件 (適用於遍歷演算法要求) 例如使用不同的佇列區隔項目處理程序。

在這種情況下,您可以選擇定義多組輪詢 參數。首先,使用 repository.traversers。針對每個已定義的遍歷名稱,提供 換成上表中的參數,並將 t1 為週遊名稱。此程序會建立一組輪詢 參數。

檢查站

查核點很適合用來追蹤漸進式週遊的狀態。

設定 參數
檢查點目錄 connector.checkpointDirectory=/path/to/checkpoint

指定用於漸進式和完整週遊檢查點的本機目錄路徑。

上傳內容

在 內容大小未超過指定門檻。如果內容大小 超過門檻,內容會與作品的 中繼資料和結構化資料

設定 參數
內容門檻 api.contentUploadThresholdBytes=bytes

決定上傳內容是否「內嵌」的門檻同時 而非單獨上傳物件

預設值為 100000 (約 100 KB)。

容器

完整連接器範本使用的演算法 暫時性資料來源佇列切換鈕,用於偵測資料庫中已刪除的記錄。 也就是說,每次完整週遊時,擷取到的記錄中 新佇列,替換所有已建立索引的現有 Cloud Search 記錄, 也就是舊佇列中的過去週遊。

設定 參數
容器名稱標記 traverse.queueTag=instance

同時執行多個連接器執行個體,為共用資料建立索引 存放區 (無論是在不同資料存放區上,還是要區分共用資料的 資料存放庫) 而不用彼此幹擾,請指派不重複的容器 命名連接器。不重複的名稱標記可防止連接器 執行個體。

名稱標記會加到「Full Traversal Connector」切換佇列 ID。

停用刪除偵測功能 traverse.useQueues=true|false

指出連接器是否使用佇列切換邏輯執行刪除偵測。

預設值為 true,表示應在清單中

注意:這個設定參數僅適用於連接器 實作 FullTraversalConnector 範本。

批次政策

SDK 支援批次政策,可讓您執行下列操作: 動作:

  • 批次處理要求
  • 指定批次佇列中的要求數量
  • 管理並行執行的批次作業
  • 清除批次要求

SDK 會在期間批次傳送連接器的要求,以加快處理量 上傳。上傳一批請求的 SDK 觸發條件是 或逾時 (以先發生者為準)。舉例來說, 超過批量,或者 項目在延遲到期前達到的批量項目, 就會觸發批次上傳

設定 參數
批次處理要求 batch.batchSize=batchSize

批次處理要求。預設值為 10

批次佇列中的要求數量 batch.maxQueueLength=maxQueueLength

批次佇列中要執行的要求數量上限。 預設值為 1000.

同時執行批次作業 batch.maxActiveBatches=maxActiveBatches

可並行執行的批次作業數量。 預設值為 20

自動清除批次要求 batch.maxBatchDelaySeconds=maxBatchDelay

批次要求完成前的等待秒數 因此會自動修正 預設值為 5

關機時清除批次要求 batch.flushOnShutdown=true|false

在服務關閉期間清除批次要求。 預設值為 true

例外狀況處理常式

例外狀況處理常式參數會決定週遊程序在事後繼續進行的方式 就會發生例外狀況

設定 參數
發生錯誤時提供的走路者指示 traverse.exceptionHandler=exceptions

擲回例外狀況後,週遊程序應如何進行。有效值 是:

  • 0:遇到例外狀況後一律取消週遊
  • num_exceptions (例如 10):週遊後取消 遇到指定的 num_exceptions

    預設值為 0 (發生錯誤時一律取消)。

  • ignore:忽略錯誤
例外狀況之間的等待時間 abortExceptionHander.backoffMilliSeconds=backoff

在偵測到的處理常式例外狀況之間等待的輪詢時間 (以毫秒為單位) (通常用於掃遍存放區)。預設值為 10