Google 提供的配置参数

每个连接器都有一个关联的配置文件,其中包含连接器使用的参数, 例如代码库的 ID参数以键值对的形式进行定义,例如 api.sourceId=1234567890abcdef

Google Cloud Search SDK 包含 Google 提供的多项配置 不同连接器使用的参数。在 Google 提供的配置参数中 只需在您的 Analytics 界面中定义数据源访问权限参数 配置文件您不需要在 您的配置文件,除非您想要替换其默认值。

本参考文档介绍了 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
  

经常设置的参数

本部分列出了必需和可选的通常设置的配置参数。如果没有 更改可选参数的值,则连接器会使用默认值 提供的资源

数据源访问权限

下表列出了在配置中显示所需的所有参数 文件。您使用的参数取决于您要构建的连接器类型(内容连接器) 或身份连接器)。

设置 参数
数据源 ID api.sourceId=1234567890abcdef

连接器需要使用此参数来标识 代码库的位置您在调用 添加了要搜索的数据源。 此参数必须位于连接器配置文件中。

身份源 ID api.identitySourceId=0987654321lmnopq

身份连接器需要使用此参数来标识 外部身份源的位置。当 在 Cloud Search 中映射用户身份。 所有身份连接器配置文件中都必须使用此参数。

服务账号私钥文件 api.serviceAccountPrivateKeyFile=./PrivateKey.json

此参数包含 访问代码库的权限。当 已配置对 Google Cloud Search REST 的访问权限 API。所有配置文件中都必须有此参数。

服务账号 ID api.serviceAccountId=123abcdef4567890

此参数用于指定服务账号 ID。只有在配置文件创建时允许使用默认空字符串值 用于指定私钥文件参数。如果您的私钥文件是必填项,则该字段为必需参数。 不是 JSON 密钥。

Google Workspace 账号 ID api.customerId=123abcdef4567890

此参数用于指定企业的 Google Workspace 账号的账号 ID。您获得了 您在映射用户时 身份。使用 身份连接器。

根网址 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 信息,以控制 Cloud Search 中内容的访问权限。如果 您的代码库中仅提供部分或不提供 ACL 信息,您可以提供默认值 以下参数中的 ACL 信息,SDK 会将这些信息提供给 连接器。

设置 参数
ACL 模式 defaultAcl.mode=mode

确定何时应用默认 ACL。有效值:

  • none:不使用默认 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
整个网域访问权限 指定所有已编入索引的记录都可由所有用户公开访问 请在网域中,将以下两个参数的值设为相应的值: <ph type="x-smartling-placeholder">
    </ph>
  • defaultAcl.mode=override
  • defaultACL.public=true
公共定义 ACL 要为数据存储库的每条记录指定一个 ACL,请设置所有 以下参数值: <ph type="x-smartling-placeholder">
    </ph>
  • defaultAcl.mode=fallback
  • defaultAcl.public=false
  • defaultAcl.readers.groups=google:group1@mydomain.com, group2 代码>
  • 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

架构名称从数据源读取,并用于存储库 结构化数据。

默认值为空字符串。

内容和搜索质量

对于包含记录或基于字段的内容(如 CRM、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 不建议将这些参数设置为 这些值与默认值不同, 存储库

代理配置

借助 SDK,您可以将连接器配置为使用代理进行传出连接。

transport.proxy.hostnametransport.proxy.port 参数为 需要通过代理启用传输。其他参数可能为必填项 如果您的代理需要身份验证或者通过 SOCKS 协议(而非 HTTP)运行。如果 未设置 transport.proxy.hostname,SDK 不会使用代理。

设置 参数
主机名 transport.proxy.hostname=hostname

代理服务器的主机名。使用代理时必须提供此参数。

端口 transport.proxy.port=port

代理服务器的端口号。使用代理时必须提供此参数。

代理类型 transport.proxy.type=type

代理的类型。有效值包括:

  • HTTP - 代理通过 HTTP 接受和转发请求。
  • SOCKS - 代理接受并转发基于 SOCKS 协议的数据包。

默认值为 HTTP

用户名 transport.proxy.username=username

构建代理授权令牌时使用的用户名。 此参数为可选参数,仅在您的代理要求身份验证时才应设置。

密码 transport.proxy.password=password

构建代理授权令牌时使用的密码。 此参数为可选参数,仅在您的代理要求身份验证时才应设置。

穿梭机

您可以利用 SDK 指定多个单独的遍历器, 并行遍历数据存储区的功能。SDK 模板连接器使用 功能。

设置 参数
线程池大小 traverse.threadPoolSize=size

连接器创建用于支持并行处理的线程数。答 单个迭代器按顺序提取操作(通常为 RepositoryDoc 对象), 但 API 会使用以下数量的线程并行调用进程。

默认值为 5

分区大小 traverse.partitionSize=batchSize

ApiOperation()的数量 在提取其他 APIOperation 之前分批处理。

默认值为 50

遍历器轮询请求

Cloud Search 索引编制队列的核心是一个优先级队列,其中包含 条目。列表连接器可以请求轮询 来自索引 API 的条目。轮询请求会获取优先级最高的条目 。

SDK 商品详情连接器模板使用以下参数来 定义轮询参数。

设置 参数
代码库遍历器 repository.traversers=t1, t2, t3, ...

创建一个或多个单个遍历器,其中 t1t2t3 ... 是每个实例的唯一名称。每个已命名遍历器都有自己的一组设置 它们使用遍历器的唯一名称进行标识,例如 traversers.t1.hostloadtraversers.t2.hostload

要轮询的队列 traverser.pollRequest.queue=mySpecialQueue

此遍历器轮询的队列名称。默认值为空字符串(表示 “default”)。

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

指定用于增量和完全遍历检查点的本地目录的路径。

内容上传

将项目内容连同项目一起上传到 Cloud Search, 内容的大小没有超过指定的阈值。如果内容的大小 超过该阈值,则系统会将相应内容与商品的 元数据和结构化数据。

设置 参数
内容阈值 api.contentUploadThresholdBytes=bytes

决定内容是否为“内嵌”内容的阈值替换为 与单独上传相比。

默认值为 100000 (~100KB)。

容器

完整连接器模板使用的算法涉及 临时数据源队列切换开关,用于检测数据库中已删除的记录。 这意味着,每次完全遍历时,已提取的记录(位于 新队列中的内容,请替换 之前的遍历,它们位于一个旧队列中。

设置 参数
容器名称标签 traverse.queueTag=instance

并行运行多个连接器实例以将公共数据编入索引 (无论是位于不同的数据存储库,还是 数据存储库)共享,则向其分配唯一的容器, 名称标签添加到连接器每次运行时。唯一名称标签可防止连接器 防止实例删除另一个实例的记录。

名称标签会附加到完全遍历连接器切换队列 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