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