垦利网站定制/pc网站优化排名软件
在之前的文章 “Elasticsearch:ES|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 丰富数据
-
Elasticsearch:enrich 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:keyword | language_name:keyword |
---|---|
1 | English |
默认情况下,策略中定义的每个丰富字段都会添加为一列。 要显式选择添加的丰富字段,请使用 WITH <field1>, <field2>...:
ROW a = "1"
| ENRICH languages_policy ON a WITH language_name
a:keyword | language_name:keyword |
---|---|
1 | English |
你可以使用 WITH new_name=<field1>重命名添加的列:
ROW a = "1"
| ENRICH languages_policy ON a WITH name = language_name
a:keyword | name:keyword |
---|---|
1 | English |
如果发生名称冲突,新创建的列将覆盖现有列。
更新丰富索引 - enrich index
创建后,你无法更新文档或将其索引为丰富索引。 相反,你需要更新你的源索引并再次执行丰富策略。 这会根据更新的源索引创建一个新的丰富索引。 先前的丰富索引将通过延迟的维护作业删除。 默认情况下,每 15 分钟执行一次。
更新丰富策略
创建后,你将无法更新或更改丰富策略。 相反,你可以:
- 创建并执行新的丰富策略。
- 在任何正在使用的丰富处理器或 ES|QL 查询中,将以前的丰富策略替换为新的丰富策略。
- 使用 delete enrich API 或 Kibana 中的索引管理来删除之前的丰富策略。
局限性
ES|QL ENRICH 命令仅支持匹配 (match) 类型的丰富策略。 此外,ENRICH 仅支持对 keyword 类型的列进行丰富。
相关文章:

Elasticsearch:ES|QL 中的数据丰富
在之前的文章 “Elasticsearch:ES|QL 查询语言简介”,我有介绍 ES|QL 的 ENRICH 处理命令。ES|QL ENRICH 处理命令在查询时将来自一个或多个源索引的数据与 Elasticsearch 丰富索引中找到的字段值组合相结合。这个有点类似于关系数据库查询中所使用的 jo…...

【linux编程】linux文件IO高级I/O函数介绍和代码示例
Linux文件IO高级I/O函数用法是指如何使用这些函数来实现高效和灵活的文件读写操作,它们包括以下几类: 分散读和集中写:readv和writev函数可以一次性地从一个文件描述符读取或写入多个缓冲区,而不需要多次调用read或write函数。这样可以减少系统调用的开销,提高I/O效率。存…...

jQuery获取地址栏GET参数值
jQuery获取地址栏GET参数值 封装方法: window.location 是获取当前页面地址 // 获取地址栏参数 function GetUrlString(name){var reg new RegExp("(^|&)" name "([^&]*)(&|$)");var r window.location.search.substr(1).match…...

JAVA应用中线程池设置多少合适?
目录 1、机器配置: 2、核心线程数 3、最大线程数多少合适? 4、理论基础 5、测试验证 一个线程跑满一个核心的利用率 6个线程 12 个线程:所有核的cpu利用率都跑满 有io操作 6、计算公式 7、决定最大线程数的流程: 1、机器…...

.Net Core 3.1 解决数据大小限制
微软官网文档上对.NET Core3.1解决数据大小限制有详细的介绍。下面是根据自己的情况进行的总结,我们可以把.Core项目部署在IIS上,也可以利用Kestrel进行部署。这两种方式处理数据大小限制的方式不一样,具体如下: 一、部署在IIS上…...

【音视频 | opus】opus编码的Ogg封装文件详解
😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…...

【微信小程序】自定义组件(一)
自定义组件 组件的创建与引用1、创建组件2、引用组件3、全局引用VS局部引用4、组件和页面的区别 样式1、组件样式隔离2、组件样式隔离的注意点3、stylelsolation的可选值 数据、方法和属性1、data数据2、methods方法3、properties4、data和properties区别5、使用setData修改pr…...

如何通过一条数字人三维动画宣传片,打造出数字文旅
越来越多虚拟人,以文化挖掘者的身份通过数字人三维动画宣传片,打通次元壁,助力文化传播形式创造性转化、创新性表达,赋予文化发展新动能。 如南方都市报民间博物馆文化探寻者“岭梅香”,由一艘在南宋时期失事的沉船“南…...

【MongoDB】索引 - 数组字段的多键索引
数组字段创建索引时,MongoDB会为数组中的每个元素创建索引键(多键索引),多键索引支持数组字段的高效查询。 一、准备工作 这里准备一些数据 db.shop.insertMany([{_id: 1, name: "水果店1", fruits: ["apple&qu…...

2023.11.5 关于 Spring 创建 和 使用
目录 创建 Spring 项目 1.创建 Maven 项目 2.添加 Spring 依赖 将 Bean 对象存储到 Spring 容器中 创建 Bean 存储 Bean ApplicationContext 获取 Bean BeanFactory 获取 Bean ApplicationContext 和 BeanFactory 的区别 获取 Bean 的三种方式 根据 Bean id 获取…...

3D目标检测实战 | 图解KITTI数据集评价指标AP R40(附Python实现)
目录 1 准确率和召回率2 P-R曲线的绘制3 AP R11与AP R40标准4 实际案例 1 准确率和召回率 首先给出 T P TP TP、 F P FP FP、 F N FN FN、 T N TN TN的概念 真阳性 True Positive T P TP TP 预测为正(某类)且真值也为正(某类)的样本数,可视为 I o U > I o U t…...

制作一个ros2机器人需要学习的课本(还不全面)
1《C语言》---这个是基础200页左右 2《C》-----500-600页 3《高等数学》-----没有这个无法计算动态电路 4《电路分析》-----没有这个没法设计硬件电路 5《英语5000词汇》最少也得达到美国小学生毕业时候的词汇水平5000词汇量 6《ros1》因为ros2没有一本中文课本---有那么一…...

Qt OpenGL相机系统
文章目录 一、简介二、实现代码三、实现效果参考资料效果展示 一、简介 一直偷懒没有学习OpenGL,乘着这段有点时间重新学习一下OpenGL,做一个简单的小工具,有助于后面理解OSG。我们都知道OpenGL中存在着下面几个坐标空间:模型空间(物体空间)、世界空间、观察空间(或者称…...

英语语音识别,语言评测,语音打分实践与代码实现
项目在这:couldn/speech-evaluation-of-english 详细的可查看项目内的md文档...

【SpringBoot篇】SpringBoot整合Mybatis实战
🎊专栏【SpringBoot】 🍔喜欢的诗句:天行健,君子以自强不息。 🎆音乐分享【如愿】 🎄欢迎并且感谢大家指出小吉的问题🥰 文章目录 🌺Spring Boot和MyBatis的好处🌺创建工…...

android c++ 硬编码硬解码官方demo
参考: https://fossies.org/linux/opencv/modules/videoio/src/cap_android_mediandk.cpp 代码: // This file is part of OpenCV project.// It is subject to the license terms in the LICENSE file found in the top-level directory// of this d…...

Python之Excel数据相关
Excel Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件。直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,使Excel成为最流行的个人计算机数据处理软件。在1993年,作为Microsof…...

Ubuntu网络IP地址一直显示127.0.0.1
问题描述: 终端输入ip a显示127.0.0.1,原来类似192.168.231.1的地址不见了。 ip a 点击网络配置(ubuntu桌面版),发现无线网络模块看不见了 正常情况应该有wired 模块,就是下面标红的 解决方案:…...

Vulnhub-DC-3 靶机复现完整过程
啰嗦两句: 提权之前完成是一个月前做的,当时在提权处出了点问题就搁置了,今天才完成,所以IP地址可能会会有变化 注意:后续出现的IP地址为192.168.200.55同样是靶机IP地址,若本文能有帮助到你的地方…...

Dubbo篇---第三篇
系列文章目录 文章目录 系列文章目录一、Dubbo 容错策略二、Dubbo 动态代理策略有哪些?三、说说 Dubbo 与 Spring Cloud 的区别?一、Dubbo 容错策略 failover cluster 模式 provider 宕机重试以后,请求会分到其他的 provider 上,默认两次,可以手动设置重试次数,建 议把写…...

Redis-使用java代码操作Redis->java连接上redis,java操作redis的常见类型数据存储,redis中的项目应用
java连接上redisjava操作redis的常见类型数据存储redis中的项目应用 1.java连接上redis package com.zlj.ssm.redis;import redis.clients.jedis.Jedis;/*** author zlj* create 2023-11-03 19:27*/ public class Demo1 {public static void main(String[] args) { // …...

react 使用笔记
1.学习:https://reactjs.bootcss.com/learn 2.项目启动报错:Delete ␍ prettier/prettier 解决:https://blog.csdn.net/qq_30272167/article/details/133280165 3.访问地址配置 文件:config-overrides.js devServer: functio…...

Ubuntu下启动Apache对.htaccess 的支持步骤, 利用.htaccess绑定域名到子目录
Ubuntu下启动Apache对.htaccess 的支持步骤 1. 终端运行 sudo a2enmod 程序提示可供激活的模块名称,输入: rewrite 2. 修改/etc/apache2/sites-enabled/000-default (该链接指向的是站点配置文件) 把(默认的www目录、或者需要应用.htacc…...

C++常用格式化输出
在C语言中可以用printf以一定的格式打印字符,C当然也可以。 输入输出及命名空间还不太了解的小伙伴可以看一看C入门讲解第一篇。 在C中,可以用流操作符(stream manipulators)控制数据的输出格式,这些流操作符定义在2…...

QCC TX 音频输入切换+提示声音
QCC TX 音频输入切换提示声音 QCC蓝牙芯片(QCC3040 QCC3056 等等),AUX、I2S、USB输入 蓝牙音频输入,模拟输出是最常见的方式。 也可以再此基础上动态切换输入方式。 针对TX切换EQ,调节音量不能出提示声音问题,可以增…...

【Java】封装、继承、多态
面向对象的重要特征:封装、继承、多态; 面向对象的语言的语言并不止Java,C也是面向对象的语言; 访问限定符 public:在哪里都可以使用(公开的);private:仅在当前类可以使用…...

第九章 异常处理
系列文章目录 第一章 Python 基础知识 第二章 python 字符串处理 第三章 python 数据类型 第四章 python 运算符与流程控制 第五章 python 文件操作 第六章 python 函数 第七章 python 常用内建函数 第八章 python 类(面向对象编程) 第九章 python 异常处理 第十章 python 自定…...

(四) Python Pandas入门
一、介绍 Pandas是Python中一个强大的数据处理库,它提供了许多功能强大的数据结构和数据分析工具。在本文中,我们将介绍Pandas的基本概念和如何使用它生成一个包含今天到未来20个工作日的日期列表的Excel文件。 Pandas提供了大量的数据结构和数据分析工…...

软件测试面试最经典的5个问题
软件测试面试灵魂五问! 请做一下自我介绍?你为什么从上家公司离职?为什么转行做测试? 你对测试行业的认识?你的期望薪资是多少?最后,你要问我什么? 一、请做一下自我介绍 简历上有的可以一两…...

从公共业务提取来看架构演进——功能设置篇
1.引言 上一篇文章我们以帐号权限的提取为例,介绍了当架构跟不上业务发展时及时调整架构的一种思路。这篇文章我们以功能设置为例,进一步讨论公共业务提取这个话题。 功能设置在本文中是指产品开放给企业和用户的一些功能设置项,以视频会议…...