设置 enrich 处理器
编辑设置 enrich 处理器
编辑要设置 enrich 处理器,请按照以下步骤操作
设置 enrich 处理器后,您可以更新 enrich 数据 和 更新 enrich 策略。
enrich 处理器执行多个操作,可能会影响摄取管道的速度。
我们强烈建议在生产环境中部署 enrich 处理器之前对其进行测试和基准测试。
我们不建议使用 enrich 处理器来追加实时数据。enrich 处理器最适合用于不经常更改的参考数据。
先决条件
编辑要使用 enrich 策略,您必须拥有
-
read
用于任何使用索引的索引权限 enrich_user
内置角色
添加 enrich 数据
编辑首先,将文档添加到一个或多个源索引中。这些文档应包含您最终想要添加到传入数据中的 enrich 数据。
创建 enrich 策略
编辑将 enrich 数据添加到源索引后,使用创建 enrich 策略 API 或 Kibana 中的索引管理 创建 enrich 策略。
创建后,您无法更新或更改 enrich 策略。请参阅更新 enrich 策略。
执行 enrich 策略
编辑创建 enrich 策略后,您需要使用执行 enrich 策略 API 或 Kibana 中的索引管理 创建enrich 索引。
enrich 索引包含策略的源索引中的文档。enrich 索引始终以.enrich-*
开头,是只读的,并且是强制合并的。
enrich 索引只能由enrich 处理器 或 ES|QL ENRICH
命令 使用。避免将 enrich 索引用于其他目的。
将 enrich 处理器添加到摄取管道
编辑准备好源索引、enrich 策略和相关的 enrich 索引后,您可以设置一个摄取管道,其中包含您策略的 enrich 处理器。
定义一个enrich 处理器,并使用创建或更新管道 API将其添加到摄取管道。
定义 enrich 处理器时,您必须至少包含以下内容
- 要使用的 enrich 策略。
- 用于将传入文档与 enrich 索引中的文档匹配的字段。
- 要添加到传入文档的目标字段。此目标字段包含 enrich 策略中指定的匹配和丰富字段。
您还可以使用max_matches
选项设置传入文档可以匹配的 enrich 文档数量。如果设置为默认值1
,则数据将作为 JSON 对象添加到传入文档的目标字段中。否则,数据将作为数组添加。
有关完整配置选项列表,请参阅Enrich。
您还可以将其他处理器添加到您的摄取管道。
更新 enrich 索引
编辑创建后,您无法更新或索引文档到 enrich 索引。相反,更新您的源索引并执行 enrich 策略。这将从更新的源索引创建新的 enrich 索引。以前的 enrich 索引将通过延迟维护作业删除。默认情况下,这每 15 分钟执行一次。
更新 enrich 策略
编辑创建后,您无法更新或更改 enrich 策略。相反,您可以
- 创建并执行新的 enrich 策略。
- 将以前的 enrich 策略替换为任何正在使用的 enrich 处理器或 ES|QL 查询中的新 enrich 策略。
- 使用删除 enrich 策略 API 或 Kibana 中的索引管理 删除以前的 enrich 策略。
丰富组件
编辑enrich 协调器是一个组件,它管理并执行在每个摄取节点上丰富文档所需的搜索。它将所有管道中所有 enrich 处理器的搜索组合成批量多搜索。
enrich 策略执行器是一个组件,它管理所有 enrich 策略的执行。当执行 enrich 策略时,此组件会创建一个新的 enrich 索引并删除以前的 enrich 索引。enrich 策略执行由选定的主节点管理。这些策略的执行发生在不同的节点上。
节点设置
编辑enrich
处理器具有用于 enrich 协调器和 enrich 策略执行器的节点设置。
enrich 协调器支持以下节点设置
-
enrich.cache_size
- 缓存用于丰富文档的搜索的缓存的最大大小。大小可以使用三种单位指定:缓存搜索的原始数量(例如
1000
)、以字节为单位的绝对大小(例如100Mb
)或节点最大堆空间的百分比(例如1%
)。对于绝对字节大小和堆空间百分比,Elasticsearch 无法保证 enrich 缓存大小会完全符合该最大值,因为 Elasticsearch 使用序列化搜索响应的字节大小,这很好地表示了堆上使用的空间,但不是完全匹配。默认为1%
。集群中所有 enrich 处理器都使用单个缓存。 -
enrich.coordinator_proxy.max_concurrent_requests
- 丰富文档时运行的并发多搜索请求的最大数量。默认为
8
。 -
enrich.coordinator_proxy.max_lookups_per_request
- 丰富文档时,在多搜索请求中包含的搜索的最大数量。默认为
128
。
enrich 策略执行器支持以下节点设置
-
enrich.fetch_size
- 将源索引重新索引到 enrich 索引时的最大批处理大小。默认为
10000
。 -
enrich.max_force_merge_attempts
- 在 enrich 索引上允许的强制合并尝试的最大次数。默认为
3
。 -
enrich.cleanup_period
- Elasticsearch 检查是否可以删除未使用的 enrich 索引的频率。默认为
15m
。 -
enrich.max_concurrent_policy_executions
- 并发执行的 enrich 策略的最大数量。默认为
50
。