设置 enrich 处理器编辑

要设置 enrich 处理器,请按照以下步骤操作

设置 enrich 处理器后,您可以更新您的 enrich 数据更新您的 enrich 策略

enrich 处理器执行多项操作,可能会影响摄取管道的速度。

我们强烈建议您在生产环境中部署 enrich 处理器之前对其进行测试和基准测试。

我们不建议使用 enrich 处理器来追加实时数据。enrich 处理器最适合处理不经常更改的参考数据。

先决条件编辑

要使用 enrich 策略,您必须具备以下条件

  • 对使用的任何索引具有 read 索引权限
  • enrich_user 内置角色

添加 enrich 数据编辑

首先,将文档添加到一个或多个源索引。这些文档应包含您最终要添加到传入数据的 enrich 数据。

您可以使用文档索引 API 来管理源索引,就像管理常规 Elasticsearch 索引一样。

您还可以设置Beats(例如Filebeat)来自动将文档发送并索引到您的源索引。请参阅Beats 入门

创建 enrich 策略编辑

将 enrich 数据添加到源索引后,请使用创建 enrich 策略 APIKibana 中的索引管理来创建 enrich 策略。

创建后,您将无法更新或更改 enrich 策略。请参阅更新 enrich 策略

执行 enrich 策略编辑

创建 enrich 策略后,您需要使用执行 enrich 策略 APIKibana 中的索引管理来执行它,以创建enrich 索引

enrich policy index

enrich 索引包含策略的源索引中的文档。enrich 索引始终以 .enrich-* 开头,是只读的,并且是强制合并的

enrich 索引应仅由enrich 处理器ES|QL ENRICH 命令使用。避免将 enrich 索引用于其他目的。

将 enrich 处理器添加到摄取管道编辑

在您拥有源索引、enrich 策略和相关的 enrich 索引后,您可以设置一个包含策略的 enrich 处理器的摄取管道。

enrich processor

使用创建或更新管道 API定义enrich 处理器并将其添加到摄取管道。

定义 enrich 处理器时,您必须至少包含以下内容

  • 要使用的 enrich 策略。
  • 用于将传入文档与 enrich 索引中的文档进行匹配的字段。
  • 要添加到传入文档的目标字段。此目标字段包含 enrich 策略中指定的匹配字段和 enrich 字段。

您还可以使用 max_matches 选项来设置传入文档可以匹配的 enrich 文档的数量。如果设置为默认值 1,则数据将作为 JSON 对象添加到传入文档的目标字段中。否则,数据将作为数组添加。

有关配置选项的完整列表,请参阅Enrich

您还可以将其他处理器添加到您的摄取管道。

摄取和丰富文档编辑

您现在可以使用摄取管道来丰富和索引文档。

enrich process

在生产环境中实施管道之前,我们建议您先索引一些测试文档,并使用获取 API验证 enrich 数据是否已正确添加。

更新 enrich 索引编辑

创建后,您无法更新或索引 enrich 索引中的文档。而是更新您的源索引并再次执行 enrich 策略。这将从您更新的源索引创建一个新的 enrich 索引。之前的 enrich 索引将通过延迟维护作业删除。默认情况下,每 15 分钟执行一次。

如果需要,您可以使用摄取管道重新索引更新任何已摄取的文档。

更新 enrich 策略编辑

创建后,您将无法更新或更改 enrich 策略。您可以

  1. 创建并执行新的 enrich 策略。
  2. 在任何正在使用的 enrich 处理器或 ES|QL 查询中,将之前的 enrich 策略替换为新的 enrich 策略。
  3. 使用删除 enrich 策略 API 或Kibana 中的索引管理来删除之前的 enrich 策略。

Enrich 组件编辑

enrich 协调器是一个组件,用于管理和执行在每个摄取节点上丰富文档所需的搜索。它将所有管道中所有 enrich 处理器的搜索组合成批量多重搜索

enrich 策略执行器是一个组件,用于管理所有 enrich 策略的执行。执行 enrich 策略时,此组件会创建一个新的 enrich 索引并删除之前的 enrich 索引。enrich 策略执行由选定的主节点管理。这些策略的执行发生在不同的节点上。

节点设置编辑

enrich 处理器具有 enrich 协调器和 enrich 策略执行器的节点设置。

enrich 协调器支持以下节点设置

enrich.cache_size
要缓存以丰富文档的最大搜索次数。默认为 1000。集群中所有 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