摄取处理器参考

编辑

一个摄取管道由一系列处理器组成,这些处理器在文档摄取到索引时应用于文档。每个处理器执行特定的任务,例如过滤、转换或丰富数据。

每个后续处理器都依赖于前一个处理器的输出,因此处理器的顺序非常重要。修改后的文档在所有处理器应用后被索引到 Elasticsearch 中。

Elasticsearch 包括 40 多个可配置的处理器。本节中的子页面包含每个处理器的参考文档。要获取可用处理器的列表,请使用节点信息 API。

resp = client.nodes.info(
    node_id="ingest",
    filter_path="nodes.*.ingest.processors",
)
print(resp)
response = client.nodes.info(
  node_id: 'ingest',
  filter_path: 'nodes.*.ingest.processors'
)
puts response
const response = await client.nodes.info({
  node_id: "ingest",
  filter_path: "nodes.*.ingest.processors",
});
console.log(response);
GET _nodes/ingest?filter_path=nodes.*.ingest.processors

按类别划分的摄取处理器

编辑

我们在此页面上对可用的处理器进行了分类并总结了它们的功能。这将帮助您找到适合您用例的处理器。

数据丰富处理器

编辑

通用结果

编辑
append 处理器
将值追加到字段。
date_index_name 处理器
根据日期或时间戳字段将文档指向正确的时间索引。
enrich 处理器
使用来自另一个索引的数据丰富文档。

有关如何使用enrich处理器在摄取期间将现有索引中的数据添加到传入文档的详细示例,请参阅丰富您的数据

inference 处理器
使用机器学习对文本字段进行分类和标记。

特定结果

编辑
attachment 处理器
解析和索引二进制数据,例如 PDF 和 Word 文档。
circle 处理器
将位置字段转换为 Geo-Point 字段。
community_id 处理器
计算网络流数据的 Community ID。
fingerprint 处理器
计算文档内容的哈希值。
geo_grid 处理器
将网格瓦片或单元格的地理网格定义转换为描述其形状的常规边界框或多边形。
geoip 处理器
从 Maxmind 数据库添加有关 IPv4 或 IPv6 地址的地理位置信息。
ip_location 处理器
从 IP 地理位置数据库添加有关 IPv4 或 IPv6 地址的地理位置信息。
network_direction 处理器
根据源 IP 地址、目标 IP 地址和内部网络列表计算网络方向。
registered_domain 处理器
从完全限定的域名 (FQDN) 中提取已注册的域(也称为有效的顶级域名或 eTLD)、子域和顶级域名。
set_security_user 处理器
通过预处理摄取,将来自当前经过身份验证的用户的用户相关详细信息(例如usernamerolesemailfull_namemetadataapi_keyrealmauthentication_type)设置到当前文档中。
uri_parts 处理器
解析统一资源标识符 (URI) 字符串并将其组件提取为对象。
urldecode 处理器
对字符串进行 URL 解码。
user_agent 处理器
解析用户代理字符串以提取有关 Web 客户端的信息。

数据转换处理器

编辑

通用结果

编辑
convert 处理器
将当前摄取的文档中的字段转换为不同的类型,例如将字符串转换为整数。
dissect 处理器
从文档中的单个文本字段中提取结构化字段。与grok 处理器不同,dissect 不使用正则表达式。这使得 dissect 成为一种更简单且通常更快的替代方案。
grok 处理器
使用支持可重用别名表达式的Grok正则表达式方言,从文档中的单个文本字段中提取结构化字段。
gsub 处理器
通过应用正则表达式和替换来转换字符串字段。
redact 处理器
使用Grok规则引擎来模糊输入文档中与给定 Grok 模式匹配的文本。
rename 处理器
重命名现有字段。
set 处理器
在字段上设置值。

特定结果

编辑
bytes 处理器
将人类可读的字节值转换为以字节为单位的值(例如,1kb 变为 1024)。
csv 处理器
从文本字段中提取单行 CSV 数据。
date 处理器
提取和转换日期字段。
dot_expand 处理器
将带点的字段展开为对象字段。
html_strip 处理器
从字段中删除 HTML 标签。
join 处理器
使用元素之间的分隔符将数组的每个元素连接成一个字符串。
kv 处理器
解析包含键值对的消息(或特定事件字段)。
lowercase 处理器uppercase 处理器
将字符串字段转换为小写或大写。
split 处理器
将字段拆分为值数组。
trim 处理器
修剪字段中的空格。

数据过滤处理器

编辑
drop 处理器
删除文档而不引发任何错误。
remove 处理器
从文档中删除字段。

管道处理处理器

编辑
fail 处理器
引发异常。当您期望管道失败并且想要向请求者传递特定消息时很有用。
pipeline 处理器
执行另一个管道。
reroute 处理器
将文档重新路由到另一个目标索引或数据流。
terminate 处理器
终止当前摄取管道,导致不再运行其他处理器。

数组/JSON 处理处理器

编辑
for_each 处理器
在数组或对象的每个元素上运行摄取处理器。
json 处理器
将 JSON 字符串转换为结构化的 JSON 对象。
script 处理器
在传入文档上运行内联或存储的脚本。该脚本在painless ingest 上下文中运行。
sort 处理器
按升序或降序对数组的元素进行排序。

添加其他处理器

编辑

您可以将其他处理器作为插件安装。

您必须在集群中的所有节点上安装任何插件处理器。否则,Elasticsearch 将无法创建包含该处理器的管道。

通过在 elasticsearch.yml 中设置 plugin.mandatory 将插件标记为强制插件。如果未安装强制插件,节点将无法启动。

plugin.mandatory: my-ingest-plugin