ElasticSearchLookupService

文档中心 › 组件索引 › ElasticSearchLookupService

ElasticSearchLookupService Controller Service

类型全限定名:cn.org.acal.lynxus.elasticsearch.ElasticSearchLookupService

所属 Bundle:cn.org.acal.lynxus:lynxus-elasticsearch-client-service-nar:2.11.8

描述

从 Elasticsearch Server 查找与指定文档 ID 关联的记录。 传递给查找的坐标必须包含键“id”。

标签

lookupenrichrecordelasticsearch

属性

下表中,加粗的属性为必填项;其余为可选项。表格同时标注默认值、是否支持表达式语言,以及是否为敏感属性(值会被加密)。

名称默认值可选值描述
Schema Access Strategyinfer
  • 使用 'Schema Name' 属性 — 要使用的 Schema 名称由 'Schema Name' 属性指定。此属性的值用于在配置的 Schema Registry 服务中查找 Schema。
  • 使用 'Schema Text' 属性 — Schema 本身的文本由 'Schema Text' 属性指定。此属性的值必须是有效的 Avro Schema。如果使用表达式语言,则 'Schema Text' 属性的值在替换表达式后必须有效。
  • 从结果推断
指定如何获取用于解释数据的架构。
Schema Registry控制器服务 API:
SchemaRegistry
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
指定用于架构Registry的Controller Service
Schema Name${schema.name}指定要在架构Registry属性中查找的架构名称
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Schema Version指定在 Schema Registry 中查找 Schema 的版本。如果未指定,则检索 Schema 的最新版本。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Schema Branch指定在 Schema Registry 属性中查找 Schema 时使用的分支名称。如果选择的 Schema Registry 不支持分支,则此值将被忽略。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Schema Text${avro.schema}Avro 格式的架构文本
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Client Service控制器服务 API:
ElasticSearchClientService
cn.org.acal.lynxus-lynxus-elasticsearch-client-service-api-nar-2.11.8
用于运行查询的 ElasticSearch 客户端服务。
Index要读取的索引的名称
支持表达式语言:是(仅使用环境/系统变量求值)
Type该文档的类型(Elasticsearch 用于索引和搜索)
支持表达式语言:是(仅使用环境/系统变量求值)

动态属性

动态属性允许用户自定义属性的名称与值。

名称值描述
一个 JSONPath 表达式一个 Record Path 表达式使用 JSONPath 从结果文档中检索对象,并将其放置在返回记录的指定 Record Path 处。

状态管理

该组件不存储状态。

受限 (Restricted)

该组件不受限。

提供的 Service API

  • LookupService (cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8)

详细说明

ElasticSearchLookupService

说明

该 Lookup Service 使用 ElasticSearch 作为数据源。LookupRecord 中的映射 把记录路径(record path)映射到 ElasticSearch 文档内的路径。示例:

/user/name => user.contact.name

这会把记录路径 /user/name 映射到名为 contact 的嵌入文档中名为 name 的字段。

由这些映射组装出的查询是一个布尔查询,所有条件都在 must 列表下。 此外,目前不支持通配符,所有条件都会被转换为字面量 match 查询。

后处理(Post-Processing)

由于 ElasticSearch 结果的结构可能与本服务要富化的记录不同,用户可以在 该 Lookup Service 上指定一组额外的映射,把 JsonPath 操作映射到记录路径。 示例:

$.user.contact.email => /user/email_address

这会把嵌入文档 contact 中的 email 字段复制到记录的该路径。