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

  • 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, ...

建立一或多位個別週遊,包括 t1、t2、t3、 ... 是每個欄位的專屬名稱。每個指定的周遊者都有各自的一組設定 這些功能是以周遊者的獨特名稱識別,例如 《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。