摄取处理器

摄取处理器 #

摄取处理器是摄取管道的核心组件。它们在索引之前对文档进行预处理。例如,您可以删除字段、从文本中提取值、转换数据格式或添加附加信息。

Easysearch 在您的 Easysearch 安装中提供了一套标准的摄取处理器。要获取 Easysearch 中可用的处理器列表,请使用节点信息 API 操作:

GET /_nodes/ingest?filter_path=nodes.*.ingest.processors

支持的处理器 #

处理器类型及其所需或可选参数根据您的具体用例而异。Easysearch 支持以下摄取处理器。有关在 Easysearch 管道中使用这些处理器的教程,请参阅每个处理器的相应文档。

处理器名称使用介绍
append向文档中的一个字段添加一个或多个值。
bytes将可读的字节值转换为字节数值。
convert更改文档中字段的数据类型。
csv从 CSV 中提取并作为单独的字段存储在文档中。
date从字段中解析日期,然后使用日期或时间戳作为文档的时间戳。
date_index_name根据文档中的日期或时间戳字段将文档索引到基于时间的索引中。
dissect从文本字段中提取结构化字段,使用定义的模式。
dot_expander将带有点的字段扩展为对象字段。
drop丢弃文档,不进行索引或引发任何错误。
fail引发异常并停止管道的执行。
foreach允许将另一个处理器应用于文档中数组或对象字段的每个元素。
geoip添加有关 IP 地址地理位置的信息。
geojson-feature将 GeoJSON 数据索引到地理空间字段中。
grok解析并使用模式匹配结构非结构化数据。
gsub替换或删除文档字符串字段中的子字符串。
html_strip从文本字段中移除 HTML 标签并返回纯文本内容。
join将数组中的每个元素连接成一个单独的字符串,元素之间用分隔符字符隔开。
json将 JSON 字符串转换为结构化的 JSON 对象。
kv自动解析字段中的键值对。
lowercase将特定字段中的文本转换为小写字母。
pipeline运行内部管道。
remove从文档中删除字段。
rename重命名现有字段。
script在传入的文档上运行内联或存储的脚本。
set将字段的值设置为指定的值。
sort按升序或降序对数组元素进行排序。
split将字段使用分隔符字符拆分为数组。
trim移除字符串字段的前导和尾随空白字符。
uppercase将特定字段中的文本转换为 uppercase 字母。
urldecode将 URL 编码的字符串解码。
user_agent从浏览器发送到其网页请求的用户代理中提取详细信息。

处理器限制设置 #

您可以使用集群设置 cluster.ingest.max_number_processors 来限制摄入处理器的数量。处理器总数包括处理器数量和 on_failure 处理器数量。

cluster.ingest.max_number_processors 的默认值是 Integer.MAX_VALUE 。如果添加的处理器数量超过 cluster.ingest.max_number_processors 中配置的值,将抛出 IllegalStateException

支持批处理的处理器 #

一些处理器支持批量摄取——它们可以作为一个批次同时处理多个文档。这些支持批处理的处理器在批量处理时通常提供更好的性能。对于批量处理,请使用批量 API 并提供一个 batch_size 参数。所有支持批处理的处理器都有批量模式和单文档模式。当您使用 PUT 方法摄取文档时,处理器以单文档模式运行并按顺序处理文档。目前,只有 text_embeddingsparse_encoding 处理器支持批量处理。所有其他处理器一次只处理一个文档。

选择性启用处理器 #

通过提供 ingest-common.processors.allowed 集群设置,可以选择性启用由 ingest-common 模块定义的处理器。如果没有提供,则默认启用所有处理器。指定一个空列表将禁用所有处理器。如果将设置更改为删除之前启用的处理器,则在新设置生效后,任何使用已禁用处理器的管道在节点重启后将失败。