Elasticsearch 中管道介绍
Elasticsearch 中管道
文章目录
- Elasticsearch 中管道
- 1、管道( Ingest Pipeline)
- 1.**管道描述**
- 2.**处理器(Processors)**
- (1)**`attachment`处理器**
- (2)**`remove`处理器**
- 3.**整体流程**
- 4.**应用场景**
- 示例:如何使用该管道
- 总结
- 2、如何设置`attachment`处理器取出`指定`字段
- 如何设置`attachment`处理器不取出`title`字段
- 示例:不导出`title`
- 解释:
- 其他可能提取的字段:
- 总结:
- 3、`properties`参数类型
- 1. **content**(文件内容)
- 2.**标题**
- 3. **author**(作者)
- 4. **content_type**(文件类型)
- 5. **language**(语言)
- 6.**关键词**(关键词)
- 7.**日期**(创建或修改日期)
- 8. **content_length**(内容长度)
- 9. **page_count**(页数)
- 10.**名称**(文件名)
- 11. **other_fields**(其他元数据字段)
- 总结
- 4、自定义`properties`参数类型
- **1.使用映射(Mapping)定义字段类型**
- **1.后处理(Post-Processing)**
- 5、修改 Ingest Pipeline 的步骤
- 示例:修改一个摄取管道
- 示例 1:修改描述和添加处理器
- 示例2:仅更新某个处理器
- 处理器类型
- 验证修改
- 删除 Ingest Pipeline
- 总结
- 6、 Java 客户端对管道的增、删、改、查操作
- 1.添加依赖
- 2.创建Elasticsearch客户端
- 3.增、删、改、查操作示例
- 3.1 增加管道
- 3.2 修改管道
- 3.3 删除项目
- 3.4 查询项目
- 4. 完整示例程序
- 总结
- 注意事项
1、管道( Ingest Pipeline)
请求请求PUT /_ingest/pipeline/attachment
是在Elasticsearch中创建一个Ingest Pipeline,用于处理文档中的附件(如PDF、Word、TXT等),提取出其中的文本内容和元数据,并删除原始的附件数据。具体解释如下:
1.管道描述
"description": "提取附件信息"
表明该Pipeline的目的是从上传的文件数据中提取内容和元数据。
2.处理器(Processors)
这个Pipeline包含两个处理器,分别是attachment
CPU和remove
CPU。
(1)attachment
处理器
{"attachment": {"field": "content","ignore_missing": true}
}
- 处理器:
attachment
基于Elasticsearch的Ingest Attachment Processor插件,它的作用是从指定字段中提取文件内容作用和元数据。这里指定的字段是content
,该字段通常是包含附件文件的Base64编码数据,比如PDF、Word或者TXT文件的内容。 - 内容提取:该处理器会解析
content
字段中存储的附件,并提取:- 文本内容(
attachment.content
) - 文件类型(
attachment.content_type
) - 语言(
attachment.language
) - 作者(
attachment.author
,如果文件中有的话) - 文件大小(
attachment.content_length
)等元数据
- 文本内容(
ignore_missing: true
:如果content
字段不存在或者为空,处理器不会报错,但是会忽略这个字段并继续执行。这很实用,因为文档某些可能没有附件,你不希望整个处理过程缺少因为字段而失败。
(2)remove
处理器
{"remove": {"field": "content"}
}
- 作用:该处理器会在
attachment
处理器提取完数据后,删除原始的content
字段,对Base64编码的文件数据。这样可以减少存储空间的占用,因为在提取完文本内容和元数据之后,通常不再需要保存原始的Base64数据。
3.整体流程
这个Pipeline的执行流程是:
- 提取文件内容和元数据:首先,
attachment
处理器从content
字段中提取附件的内容和相关元数据,存储在新的attachment
字段中。 - 删除原始的Base64数据文件:接着,
remove
处理器会删除原始的content
字段,确保只保留提取出的文本和元数据,减少存储空间。
4.应用场景
可能的Pipeline主要用于处理包含文件附件的文档,比如你有一个PDF文件或Word文档,想要提取其中的文本并进行全面的搜索或分析。典型的使用场景包括:
- 全文搜索:您可以对提取出的文件内容进行全文搜索,而不需要保留原始的文件数据。
- 文件元数据存储:您可以存储并查询文件的元数据(如作者、文件类型、文件大小等),用于过滤或分析。
示例:如何使用该管道
-
创建管道(如本例中已经完成)
PUT /_ingest/pipeline/attachment {"description": "提取附件信息","processors": [{"attachment": {"field": "content","ignore_missing": true}},{"remove": {"field": "content"}}] }
-
上传文件并进行处理 上传一个文件的Base64编码内容并通过该Pipeline进行处理:
POST /my_index/_doc?pipeline=attachment {"content": "BASE64_ENCODED_FILE_CONTENT" }
-
存储的文档内容:执行成功后,Elasticsearch会存储提取出的
attachment
字段(文件内容和元数据),而不会保存原始的content
字段。文档的索引可能看起来像这样:
{"_index": "my_index","_id": "1","_source": {"attachment": {"content": "This is the extracted text from the file...","content_type": "application/pdf","language": "en","author": "Author Name","content_length": 12345}} }
总结
这个Pipeline的作用是从文档中的附件(如PDF、Word、TXT文件等)提取内容和元数据,进而删除原始的Base64编码数据,以优化存储并为全文搜索等操作做好准备。
2、如何设置attachment
处理器取出指定
字段
在Elasticsearch的attachment
处理器中,如果您不想提取文档属性中的标题(title
),可以通过properties
参数来控制要提取哪些字段。**properties
**参数允许您指定只提取某些元数据字段,避免提取不需要的字段(如title
) 。
如何设置attachment
处理器不取出title
字段
您可以在attachment
处理器的配置中使用properties
参数,明确指定需要提取的字段,并排除不需要的title
字段。
示例:不导出title
PUT /_ingest/pipeline/attachment
{"description": "提取附件信息,不包括标题","processors": [{"attachment": {"field": "content","properties": ["content", "content_type", "language", "author", "content_length"],"ignore_missing": true}},{"remove": {"field": "content"}}]
}
解释:
-
properties
:该参数定义了要提取的具体字段。在示例中,properties
被设置为:
content
: 文件实际文本内容content_type
: 文件的 MIME 类型(如application/pdf
)language
: 文件语言author
: 文件的作者content_length
: 文件内容长度(字节数)
通过明确指定这些字段,attachment
处理器只会提取你需要的字段,不会提取title
字段。
其他可能提取的字段:
如果您想进一步控制其他可能的元数据字段,以下是attachment
处理器支持的常见字段列表:
content
: 文件实际文本内容content_type
: 文件类型(如application/pdf
、application/msword
等)language
: 文件的语言(如en
、fr
)。author
: 文档的作者(如果存在)。title
: 文档的标题(如果存在)。date
: 文章创建日期keywords
: 文档中可能存在的关键词。content_length
: 文件内容的字节数
总结:
通过在attachment
处理器中使用properties
参数,您可以精确控制哪些字段会被提取。如果您不需要提取文件的title
,只需要在properties
中修复即可,就像上面的例子那样明确指定所需的其他字段。
3、properties
参数类型
在Elasticsearch的Ingest Attachment Processor中,当你不指定properties
参数时,它默认会提取文件的所有可用元数据属性,如title
(标题)、author
(作者)、content_type
(文件类型)等。这些元数据会存储在生成的attachment
字段中。
来说,取出的元数据存储在不同的字段中,每个字段对应不同的元数据类型,存储的数据类型根据属性的内容取不同。以下是主要元数据属性对应其类型:
1. content(文件内容)
-
類型:
string
-
说明: 提取出文件的实际内容。
-
示例 :
"content": "This is the text extracted from the file..."
2.标题
-
类型:
string
或null
-
说明:提取出的文档标题(如果存在)。在很多
相关文章:

Elasticsearch 中管道介绍
Elasticsearch 中管道 文章目录 Elasticsearch 中管道1、管道( Ingest Pipeline)1.**管道描述**2.**处理器(Processors)**(1)**`attachment`处理器**(2)**`remove`处理器**3.**整体流程**4.**应用场景**示例:如何使用该管道总结2、如何设置`attachment`处理器取出`指定…...
将jinjia2后端传到前端的字典数据转化为json
后端代码 from flask import Flask, render_template, jsonifyapp Flask(__name__)app.route(/) def index():data {key: value, number: 123}return render_template(index.html, datadata)if __name__ __main__:app.run(debugTrue) 前端代码 使用tojson过滤器即可 <!…...

Linux中如何理解一切皆文件
根据之前的学习我们会有一些少许的疑惑,我们的stdin ,stdout,stderr访问的是键盘显示器,然而键盘显示器等他们都有一个共同的特点就是他们都是外设,那么这些外设是怎么被看成是文件的呢? 看图可以知道硬件的…...
【贪心算法】(第十一篇)
目录 坏了的计算器(medium) 题目解析 讲解算法原理 编写代码 合并区间(medium) 题目解析 讲解算法原理 编写代码 坏了的计算器(medium) 题目解析 1.题目链接:. - 力扣(Leet…...

React(五) 受控组件和非受控组件; 获取表单元素的值。高阶组件(重点),Portals; Fragment组件;严格模式StrictMode
文章目录 一、受控组件1. 什么是受控组件2. 收集input框内容3. 收集checkBox的值4. 下拉框select总结 二、非受控组件三、高阶组件1. 高阶组件的概念 (回顾高阶函数)2. 高阶组件应用:注入props(1) 高阶组件给---函数式组件注入props(2) 高阶组件给---类组件注入prop…...
深入解析 Jenkins 自动化任务链:三大方法实现任务间依赖与状态控制
文章目录 前言1. 使用 “Build Trigger”(构建触发器)2. 使用 Jenkins Pipeline 实现任务触发3. 使用 Jenkins 的 “Parameterized Trigger Plugin” 插件例子1:任务 A 成功后自动执行任务 B例子2:任务 A 成功后自动执行 Pipeline…...

无人机飞手执照培训为什么需要脱产学习?
无人机飞手执照培训需要脱产学习的原因主要基于以下几个方面: 一、知识体系的系统性与复杂性 无人机飞手培训涵盖的内容广泛且深入,包括无人机基础知识、飞行原理、气象学、法律法规等多个方面。这些知识体系相互关联,需要学员进行系统的学…...

PostgreSQL(十三)pgcrypto 扩展实现 AES、PGP 加密,并自定义存储过程
目录 一、pgcrypto 简介1.1 安装 pgcrypto 扩展1.2 pgcrypto 包含的函数 二、用法①:对称加密(使用 AES、Blowfish 算法)2.1 密钥2.2 密钥偏移量 三、用法②:PGP加解密3.1 什么是PGP算法?3.2 使用 GPG 生成密钥对3.3 列…...
uniapp使用webView打开的网页有缓存如何解决(APP,微信小程序)
1、给webView的url增加时间戳 this.webviewUrl ${url}?t${new Date().getTime()}; // 添加时间戳 2、在nginx服务器上添加响应头,告诉浏览器不可以使用缓存 location / {root /opt/webs/lcdp-client/dist;index index.html index.htm;try_files $uri $uri/ /…...

HarmonyOS 模块化设计
1.HarmonyOS 模块化设计 模块化设计文档 应用程序包开发与使用文档 1.1. 概述 组件化一直是移动端比较流行的开发方式,有着编译运行快,业务逻辑分明,任务划分清晰等优点,HarmonyOs组件化的使用,有利于模块之间的解…...

解决docker拉取readeck镜像报Error response from daemon: toomanyrequests问题
readeck 是一个内容中心,目前已支持中文翻译 这是本地化部署后的效果: 原命令为: docker run --rm -ti -p 8000:8000 -v readeck-data:/readeck codeberg.org/readeck/readeck:latest Unable to find image codeberg.org/readeck/readeck:la…...

duilib的应用 在双屏异分辨率的显示器上 运行显示不出来
背景:win11,duilib应用,双显示器,两台分辨率相同,分别设置不同的缩放以后,应用运行以后,程序闪一下消失或者程序还在,但是UI显示不出来。 原因 窗口风格设置不合理,所以…...

零代码快速开发智能体 |甘肃旅游通
在互联网信息爆炸的时代,寻找一处让人心动的旅游胜地往往需要花费大量的时间和精力。而今天,我要向大家介绍一款能够帮助你轻松规划甘肃之行的智能体——“甘肃旅游通”。这款智能体通过低代码开发,集合了丰富的旅游信息和个性化推荐功能&…...

【MATLAB源码-第187期】基于matlab的人工蜂群优化算法(ABC)机器人栅格路径规划,输出做短路径图和适应度曲线。
操作环境: MATLAB 2022a 1、算法描述 Artificial Bee Colony(ABC)算法是一种模仿蜜蜂觅食行为的优化算法,它通过模拟蜜蜂群体的社会结构和行为来解决数学优化问题。本文将详细介绍ABC算法的基本原理、算法流程、以及在实际应用…...
qt获取本地语言
获取本地语言 #define QSTRING_TO_UTF8(str) std::string(str.toUtf8()) enum LanguageType {kLanguageTypeChinese,kLanguageTypeTradition,kLanguageTypeEnglish };QLocale qlLanguage;QString qstrLangCode qlLanguage.languageToString(qlLanguage.language());LOG(INFO)…...

【Spring篇】Spring中的Bean管理
🧸安清h:个人主页 🎥个人专栏:【计算机网络】【Mybatis篇】 🚦作者简介:一个有趣爱睡觉的intp,期待和更多人分享自己所学知识的真诚大学生。 目录 🎯Spring IOC容器 Ὢ…...

UV灯 VS LED灯,LED美甲灯是紫外线灯吗?
美甲灯是使甲油胶固化的重要工具,目前最常用的美甲灯一般是UV灯、LED灯以及CCFL灯。 一、不同的灯之间到底有什么区别呢?这次让我们好好看一下 UV灯: UV灯是紫外线灯管的简称。UV灯属于热阴极荧光灯,发出UVA(长波紫…...

得物App3D博物馆亮相“两博会”,正品保障助力消费体验升级
近日,2024中国体育文化博览会、中国体育旅游博览会(以下简称“两博会”)在苏州国际展览中心盛大开幕。本次展会汇聚了众多国内外体育文化、体育旅游领域的顶尖企业和品牌,共同展示体育产业的发展成果和最新趋势。在C展馆C21展位&a…...

rancher安装并快速部署k8s 管理集群工具
主机准备 准备4台主机 3台用于k8s集群 ,1台用于rancher 每台服务器新增配置文件 vi etc/sysctl.confnet.ipv4.ip_forward 1 刷新生效 sysctl –p 安装docker 安装的时候可以去github上检索rancher看看最新版本适配那个版本的docker,这里安装23.0.1…...

NVR接入录像回放平台EasyCVR视频融合平台语音对讲配置
国标GB28181视频平台EasyCVR视频融合平台可拓展性强、视频能力灵活,平台可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、智能分析接入等功能。其中,在语音对讲方面,NVR接入录像回放平台目前…...

接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...