每个连接器都有一个关联的配置文件,其中包含连接器使用的参数,
  例如代码库的 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=movieTitleitemMetadata.title.defaultValue=商品标题。如果 title.field未设置为任何值,则title.defaultValue。 | 
| 源代码库网址 | itemMetadata.sourceRepositoryUrl.field=urlitemMetadata.sourceRepositoryUrl.defaultValue=https://www.imdb.com/title/tt0031381/搜索结果中使用的商品网址。您可能只需将 defaultValue设置为
     整个仓库的网址,例如,如果您的代表是一个 CSV 文件,而其中只有一个
  每件商品的网址。如果未设置sourceRepositoryUrl.field附加到值,则使用sourceRepositoryUrl.defaultValue的值。 | 
| 容器名称 | itemMetadata.containerName.field=containerNameitemMetadata.containerName.defaultValue=myDefaultContainerName该项的容器的名称,例如文件系统目录或文件夹的名称。如果 containerName.field未设置为任何值,则containerName.defaultValue。 | 
| 对象类型 | itemMetadata.objectType.field=typeitemMetadata.objectType.defaultValue=连接器使用的对象类型,如 架构。 如果未指定此属性,连接器不会将任何结构化数据编入索引。 如果未将 objectType.field设置为值,则
     已使用objectType.defaultValue。 | 
| 创建时间 | itemMetadata.createTime.field=releaseDateitemMetadata.createTime.defaultValue=1940-01-17文档创建时间戳。如果 createTime.field未设置为任何值,则
     使用createTime.defaultValue的值。 | 
| 更新时间 | itemMetadata.updateTime.field=releaseDateitemMetadata.updateTime.defaultValue=1940-01-17内容的上次修改时间戳。如果 updateTime.field未设置为
     值,系统会使用updateTime.defaultValue的值。 | 
| 内容语言 | itemMetadata.contentLanguage.field=languageCodeitemMetadata.contentLanguage.defaultValue=要编入索引的文档的内容语言。如果 contentLanguage.field未设置为任何值,则系统会使用contentLanguage.defaultValue的值。 | 
| MIME 类型 | itemMetadata.mimeType.field=mimeTypeitemMetadata.mimeType.defaultValue=源代码库中 ItemContent.content 的原始 MIME 类型。长度上限为 256 个字符。如果 mimeType.field未设置为任何值,则mimeType.defaultValue。 | 
| 搜索质量元数据 | itemMetadata.searchQualityMetadata.quality.field=qualityitemMetadata.searchQualityMetadata.quality.defaultValue=表示内容质量的指标,用于影响搜索质量。值应为 介于 0.0(最低质量)和 1.0(最高质量)之间。默认值为 0.0。如果 quality.field未设置为任何值,则quality.defaultValue。 | 
| 哈希 | itemMetadata.hash.field=hashitemMetadata.hash.defaultValue=f0fda58630310a6dd91a7d8f0a4ceda2API 调用方提供的哈希值。这可与 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 在检测到的处理程序异常之间等待的退避时间(以毫秒为单位)
        (通常在遍历存储库时使用)。默认值为  |