在 Painless 中使用摄取处理器
编辑在 Painless 中使用摄取处理器
编辑一些 摄取处理器 通过 Painless 方法公开其行为,这些方法可以在摄取管道中执行的 Painless 脚本中调用。
方法用法
编辑在 Painless 中可用的所有摄取方法都作用于 Processors
命名空间。例如
POST /_ingest/pipeline/_simulate?verbose { "pipeline": { "processors": [ { "script": { "lang": "painless", "source": """ long bytes = Processors.bytes(ctx.size); ctx.size_in_bytes = bytes; """ } } ] }, "docs": [ { "_source": { "size": "1kb" } } ] }
摄取方法参考
编辑JSON 解析
编辑使用 JSON 处理器 将 JSON 字符串转换为结构化的 JSON 对象。第一个 json
方法接受一个映射和一个键。处理器根据 key
参数指定的映射中将 JSON 字符串转换为结构化的 JSON 内容。该内容将直接添加到 map
对象中。
第二个 json
方法接受 value
参数中的 JSON 字符串,并返回一个结构化的 JSON 对象。
void json(Map<String, Object> map, String key); Object json(Object value);
然后,您可以通过上下文对象将此对象添加到文档中。
Object json = Processors.json(ctx.inputJsonString); ctx.structuredJson = json;
URI 分解
编辑使用 URI 部分处理器 分解 value
参数中提供的 URI 字符串。返回一个键值对映射,其中键是 URI 组件的名称(例如 domain
或 path
),值是该组件对应的值。
String uriParts(String value);
网络社区 ID
编辑使用 社区 ID 处理器 计算网络流数据的网络社区 ID。
String communityId(String sourceIpAddrString, String destIpAddrString, Object ianaNumber, Object transport, Object sourcePort, Object destinationPort, Object icmpType, Object icmpCode, int seed) String communityId(String sourceIpAddrString, String destIpAddrString, Object ianaNumber, Object transport, Object sourcePort, Object destinationPort, Object icmpType, Object icmpCode)