每个连接器都有一个关联的配置文件,其中包含连接器使用的参数,
例如代码库的 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
此参数用于指定索引服务基准网址路径。 此参数的默认值是一个空字符串,该字符串将转换为
|
遍历时间表
计划参数决定了连接器执行遍历之间的间隔时间。
设置 | 参数 |
---|---|
在连接器启动时执行完全遍历 | schedule.performTraversalOnStart=true|false
连接器在启动时执行完全遍历,而非
等待第一个时间间隔到期。默认值为 |
在一段时间间隔后执行完全遍历 | schedule.traversalIntervalSecs=intervalInSeconds
连接器会在指定的时间间隔后执行完全遍历。指定
各次遍历之间的时间间隔(以秒为单位)。默认值为 |
在一次遍历后退出 | connector.runOnce=true|false
连接器运行一次完全遍历,然后退出。该参数只能
如果使用的是完全遍历策略,请设置为 |
一段时间后执行增量遍历 | schedule.incrementalTraversalIntervalSecs=intervalInSeconds
连接器会在指定的时间间隔后执行增量遍历。
指定各次遍历之间的时间间隔,以秒为单位。默认值为
|
已安排的轮询队列间隔 | schedule.pollQueueIntervalSecs=interval_in_seconds
计划轮询队列间隔之间的时间间隔(以秒为单位)。这是
只能由列表遍历连接器实现。默认值为 |
访问控制列表
连接器使用 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 |
整个网域访问权限 | 指定所有已编入索引的记录都可由所有用户公开访问
请在网域中,将以下两个参数的值设为相应的值:
<ph type="x-smartling-placeholder">
|
公共定义 ACL | 要为数据存储库的每条记录指定一个 ACL,请设置所有
以下参数值:
<ph type="x-smartling-placeholder">
|
元数据配置参数
部分作品元数据是可以配置的。在配置过程中,连接器可以设置可配置的元数据字段, 编入索引。如果连接器未设置字段,系统会使用您配置文件中的参数 来设置该字段
配置文件的 有一系列已命名的元数据配置参数,由
.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
架构名称从数据源读取,并用于存储库 结构化数据。 默认值为空字符串。 |
内容和搜索质量
对于包含记录或基于字段的内容(如 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
连接器处理未指定内容字段的方式。有效值包括:
|
在 HTML 模板中添加字段名称 | contentTemplate.templateName.includeFieldName=true|false
指定是否在 HTML 中包含字段名称和字段数据
模板。默认值为 |
不经常设置的参数
您几乎不需要设置本部分列出的参数。参数的默认值为 以获得最佳性能。Google 不建议将这些参数设置为 这些值与默认值不同, 存储库
代理配置
借助 SDK,您可以将连接器配置为使用代理进行传出连接。
transport.proxy.hostname
和 transport.proxy.port
参数为
需要通过代理启用传输。其他参数可能为必填项
如果您的代理需要身份验证或者通过 SOCKS 协议(而非 HTTP)运行。如果
未设置 transport.proxy.hostname
,SDK 不会使用代理。
设置 | 参数 |
---|---|
主机名 | transport.proxy.hostname=hostname
代理服务器的主机名。使用代理时必须提供此参数。 |
端口 | transport.proxy.port=port
代理服务器的端口号。使用代理时必须提供此参数。 |
代理类型 | transport.proxy.type=type
代理的类型。有效值包括:
默认值为 |
用户名 | transport.proxy.username=username
构建代理授权令牌时使用的用户名。 此参数为可选参数,仅在您的代理要求身份验证时才应设置。 |
密码 | transport.proxy.password=password
构建代理授权令牌时使用的密码。 此参数为可选参数,仅在您的代理要求身份验证时才应设置。 |
穿梭机
您可以利用 SDK 指定多个单独的遍历器, 并行遍历数据存储区的功能。SDK 模板连接器使用 功能。
设置 | 参数 |
---|---|
线程池大小 | traverse.threadPoolSize=size
连接器创建用于支持并行处理的线程数。答 单个迭代器按顺序提取操作(通常为 RepositoryDoc 对象), 但 API 会使用以下数量的线程并行调用进程。 默认值为 |
分区大小 | traverse.partitionSize=batchSize
默认值为 |
遍历器轮询请求
Cloud Search 索引编制队列的核心是一个优先级队列,其中包含 条目。列表连接器可以请求轮询 来自索引 API 的条目。轮询请求会获取优先级最高的条目 。
SDK 商品详情连接器模板使用以下参数来 定义轮询参数。
设置 | 参数 |
---|---|
代码库遍历器 | repository.traversers=t1, t2, t3, ...
创建一个或多个单个遍历器,其中 t1、t2、t3
... 是每个实例的唯一名称。每个已命名遍历器都有自己的一组设置
它们使用遍历器的唯一名称进行标识,例如
|
要轮询的队列 | traverser.pollRequest.queue=mySpecialQueue
此遍历器轮询的队列名称。默认值为空字符串(表示 “default”)。 |
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
指定用于增量和完全遍历检查点的本地目录的路径。 |
内容上传
将项目内容连同项目一起上传到 Cloud Search, 内容的大小没有超过指定的阈值。如果内容的大小 超过该阈值,则系统会将相应内容与商品的 元数据和结构化数据。
设置 | 参数 |
---|---|
内容阈值 | api.contentUploadThresholdBytes=bytes
决定内容是否为“内嵌”内容的阈值替换为 与单独上传相比。 默认值为 |
容器
完整连接器模板使用的算法涉及 临时数据源队列切换开关,用于检测数据库中已删除的记录。 这意味着,每次完全遍历时,已提取的记录(位于 新队列中的内容,请替换 之前的遍历,它们位于一个旧队列中。
设置 | 参数 |
---|---|
容器名称标签 | traverse.queueTag=instance
并行运行多个连接器实例以将公共数据编入索引 (无论是位于不同的数据存储库,还是 数据存储库)共享,则向其分配唯一的容器, 名称标签添加到连接器每次运行时。唯一名称标签可防止连接器 防止实例删除另一个实例的记录。 名称标签会附加到完全遍历连接器切换队列 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
在检测到的处理程序异常之间等待的退避时间(以毫秒为单位)
(通常在遍历存储库时使用)。默认值为 |