网站推广平台搭建,做网站需要数据储存么,wordpress ajax不支持ie,网站开发流程的认识在之前的文章 “Elasticsearch#xff1a;ES|QL 查询语言简介”#xff0c;我有介绍 ES|QL 的 ENRICH 处理命令。ES|QL ENRICH 处理命令在查询时将来自一个或多个源索引的数据与 Elasticsearch 丰富索引中找到的字段值组合相结合。这个有点类似于关系数据库查询中所使用的 jo…在之前的文章 “ElasticsearchES|QL 查询语言简介”我有介绍 ES|QL 的 ENRICH 处理命令。ES|QL ENRICH 处理命令在查询时将来自一个或多个源索引的数据与 Elasticsearch 丰富索引中找到的字段值组合相结合。这个有点类似于关系数据库查询中所使用的 join。
例如你可以使用 ENRICH 来
根据已知 IP 地址识别 Web 服务或供应商根据产品 ID 将产品信息添加到零售订单根据电子邮件地址补充联系信息 ENRICH 命令如何工作
ENRICH 命令将新列添加到表中其中包含来自 Elasticsearch 索引的数据。 它需要一些特殊的组件 丰富政策 - enrich policy
丰富策略是一组配置选项用于将正确的丰富数据添加到输入表中。
丰富策略包含
将丰富数据存储为文档的一个或多个源索引的列表确定处理器如何将丰富数据与传入文档进行匹配的策略类型源索引中的匹配字段用于匹配传入文档丰富字段包含来自要添加到传入文档的源索引的丰富数据
创建策略后必须执行execute后才能使用。 执行丰富策略使用策略源索引中的数据来创建称为丰富索引 (enrich index) 的简化系统索引。 ENRICH 命令使用此索引来匹配和丰富输入表。 源索引 - source index
存储 ENRICH 命令用于添加到输入表的丰富数据的索引。 你可以像常规 Elasticsearch 索引一样创建和管理这些索引。 你可以在丰富策略中使用多个源索引。 你还可以在多个丰富策略中使用相同的源索引。 丰富索引 - enrich index
与特定丰富策略相关的特殊系统索引。这个是由系统生成的。在我们执行完 execute 命令后系统会生成这个索引。
直接将输入表中的行与源索引中的文档进行匹配可能会很慢并且会占用大量资源。 为了加快速度ENRICH 命令使用丰富索引。
丰富索引包含来自源索引的丰富数据但有一些特殊属性可以帮助简化它们
它们是系统索引这意味着它们由 Elasticsearch 内部管理并且仅适用于丰富处理器和 ES|QL ENRICH 命令。它们总是以 .enrich-* 开头。它们是只读的这意味着您无法直接更改它们。它们被 force merged 以便快速检索。 创建丰富策略 - enrich policy
要开始使用 ENRICH请按照下列步骤操作
检查先决条件。添加丰富的数据。制定丰富策略。执行丰富策略。使用丰富策略
设置丰富策略后你可以更新丰富数据并更新丰富策略。 重要ENRICH 命令执行多项操作可能会影响查询速度。 1. 前提条件
要使用丰富策略你必须具备
针对所使用的任何索引必须具有 read 的索引权限rich_user 内置角色 2. 添加丰富数据
首先将文档添加到一个或多个源索引。 这些文档应包含你最终想要添加到传入数据中的丰富数据。
你可以使用 document 和 index API 管理源索引就像管理常规 Elasticsearch 索引一样。
你还可以设置 Beats例如 Filebeat来自动发送文档并将其索引到源索引。 请参阅 Beats 入门。 3. 创建丰富策略
将丰富数据添加到源索引后使用 create enrich policy API 或 Kibana 中的索引管理来创建丰富策略。针对英文不是很好的开发者来说你可以阅读如下的文章 Elasticsearch如何使用 Elasticsearch ingest 节点来丰富日志和指标 Elasticsearch使用 Elasticsearch ingest pipeline 丰富数据 Elasticsearchenrich processor 7.5发行版新功能 Elasticsearch 的新 range 丰富策略使上下文数据分析更上一层楼 - 7.16 警告创建后你将无法更新或更改丰富策略。 请参阅下面的更新丰富策略。 4. 执行丰富策略
创建丰富策略后你需要使用 execute enrich API 或 Kibana 中的索引管理来执行它以创建丰富索引 - enrich index。 丰富索引包含来自策略源索引的文档。 丰富索引始终以 .enrich-* 开头是只读的并且强制合并 (force merged)。 警告丰富索引只能由丰富处理器enrich processor或 ES|QL ENRICH 命令使用。 避免将丰富索引用于其他目的。 5. 使用丰富策略
执行策略后你可以使用 ENRICH 命令来丰富你的数据。 以下示例使用 languages_policy 丰富策略为策略中定义的每个丰富字段添加一个新列。 使用丰富策略enrich policy中定义的 match_field 执行匹配并要求输入表具有相同名称的列本例中为 language_code。 ENRICH 将根据匹配字段值在丰富索引中查找记录。
ROW language_code 1
| ENRICH languages_policy
language_code:keywordlanguage_name:keyword 1 English
默认情况下策略中定义的每个丰富字段都会添加为一列。 要显式选择添加的丰富字段请使用 WITH field1, field2...
ROW a 1
| ENRICH languages_policy ON a WITH language_name
a:keywordlanguage_name:keyword 1 English
你可以使用 WITH new_namefield1重命名添加的列
ROW a 1
| ENRICH languages_policy ON a WITH name language_name
a:keywordname:keyword 1 English
如果发生名称冲突新创建的列将覆盖现有列。 更新丰富索引 - enrich index
创建后你无法更新文档或将其索引为丰富索引。 相反你需要更新你的源索引并再次执行丰富策略。 这会根据更新的源索引创建一个新的丰富索引。 先前的丰富索引将通过延迟的维护作业删除。 默认情况下每 15 分钟执行一次。 更新丰富策略
创建后你将无法更新或更改丰富策略。 相反你可以
创建并执行新的丰富策略。在任何正在使用的丰富处理器或 ES|QL 查询中将以前的丰富策略替换为新的丰富策略。使用 delete enrich API 或 Kibana 中的索引管理来删除之前的丰富策略。 局限性
ES|QL ENRICH 命令仅支持匹配 (match) 类型的丰富策略。 此外ENRICH 仅支持对 keyword 类型的列进行丰富。