ingest attachment插件

Elasticsearch BES

  • 邀测版存储计算分离套餐介绍
  • 功能发布记录
  • 产品描述
    • 基本概念
    • 关键特性
    • 产品介绍
    • 产品性能
      • 4核16GB512GB通用型的3个数据节点实例基准性能指标
      • 8核16GB512GB计算型的3个数据节点实例基准性能测试
      • 16核32GB512GB计算型的3个数据节点实例基准性能指标
      • 4核8GB512GB计算型的3个数据节点实例基准性能测试
      • 8核32GB512GB通用型的3个数据节点实例基准性能指标
      • 16核64GB512GB通用型的3个数据节点实例基准性能指标
      • 概述
  • Python-SDK
    • 实例
    • 异常
    • 日志
    • 节点配置类型
    • 版本更新记录
    • 快速入门
    • 集群
    • BesClient
    • 安装SDK工具包
    • 概述
  • Kibana
    • Kibana使用指南
  • Logstash
    • Logstash使用指南
    • 实例管理
      • 实例详情信息
      • 实例扩缩容
      • 管道管理
      • 创建实例
      • 实例列表
      • 删除实例
  • 开发指南
    • Elasticsearch Restful API
    • 通过其他客户端访问Elasticsearch
    • Elasticsearch Java客户端
      • Low Level REST Client
      • Rest Client操作向量索引示例
      • Java REST Client
      • High Level REST Client
  • Java-SDK
    • 实例
    • 异常
    • 日志
    • 节点配置类型
    • 版本更新记录
    • 快速入门
    • 集群
    • BesClient
    • 安装SDK工具包
    • 概述
  • 向量检索特性
    • 资源规划
    • 关键概念
    • 应用场景
    • 快速入门
    • 算法介绍
    • 能力简介
    • 向量数据库
    • 操作指南
      • 写入和查询数据
      • 训练模型
      • 向量索引缓存管理
      • 创建索引
      • 基于Reciprocal Rank Fusion的融合查询
      • 参数优化
      • 7.4版本兼容说明
    • 最佳实践
      • 调优建议
      • BES RAG 最佳实践:基于LangChain+BES的私域知识的QA问答系统
    • 迁移方案
      • ES dense vector 切换为BES方案
  • ELK
    • 基于ELK构建日志分析系统
  • 增强特性
    • 慢查询隔离
    • 百度NLP中文分词词典动态更新
    • 百度NLP中文分词插件
    • 基于段文件的主从复制
    • 基于BOS的冷热数据分离
  • 快速入门
    • 访问Elasticsearch服务
    • 导入数据并搜索
    • 创建集群
    • 集群资源评估
  • 典型实践
    • 使用BSC将BOS中的数据导入Es
    • 使用BSC将Kafka中的数据导入Es
    • 基于CCR实现多集群跨地域高可用
    • 基于节点磁盘介质的冷热数据分离
  • 服务等级协议SLA
    • 数据迁移服务协议
    • BES服务等级协议SLA(V1.0)
  • 常见问题
    • Spark访问Es常见问题
    • Elasticsearch系统常见问题
    • 常见问题总览
  • 产品定价
    • 预付费
    • 计费说明
    • 配置变更费用说明
    • 后付费
  • API文档
    • 概述
    • 自动续费相关接口
      • 续费列表
      • 查看自动续费
      • 查看自动续费规则列表
      • 续费操作
      • 更新自动续费规则
      • 删除自动续费规则
      • 创建自动续费规则
    • 插件配置接口
      • 上传自定义插件
      • 卸载系统默认插件
      • 上传nlp词典
      • 安装系统默认插件
      • 获取默认和自定义插件列表
      • 卸载自定义插件
      • 安装自定义插件
      • 删除自定义插件
      • 查看nlp词典
    • 日志管理相关接口
      • 查看日志导出任务记录
      • 创建日志导出任务
      • 日志设置
      • 日志查询
    • 标签接口
      • 查询标签列表
      • 批量新增标签
      • 单个集群更新标签
    • 智能巡检接口
      • 查看近7天已完成的巡检任务列表
      • 近七天巡检概况
      • 查看手动巡检任务的配置
      • 集群巡检授权
      • 列举所有可选巡检项
      • 查询是否可以提交巡检任务
      • 最新一次巡检概况
      • 查看集群是否开启自动巡检
      • 修改手动巡检任务的配置
      • 开启或关闭自动巡检
      • 提交手动巡检任务
      • 查询今日已执行完成的手动巡检次数
      • 查看某巡检任务的执行状态和结果
    • 集群相关接口
      • 获取操作历史信息
      • 删除集群
      • 新增节点类型
      • 开启和关闭https
      • 查看集群详情信息
      • 重置密码
      • EIP绑定
      • EIP解绑
      • 是否开启Grafana监控
      • 获取数据量观测数据
      • 查看集群列表
      • 上传NLP分词词典
      • 创建集群
      • 智能评估
      • 集群blb信息
      • 用户可用代金券列表
      • 停止集群
      • 扩容集群
      • 启动集群
      • 重启集群
    • 实例相关接口
      • 批量停止实例
      • 启动实例
      • 查看缩容节点列表
      • 数据迁移
      • 数据迁移系统建议
      • 批量启动实例
      • 数据迁移回滚
      • 停止实例
      • 数据迁移节点列表
      • 删除实例
    • 配置修改相关接口
      • 获取同义词文件列表
      • 查看集群配置
      • 删除同义词配置文件
      • 上传同义词配置文件
      • 配置修改
    • 定时调度
      • 更新定时调度任务
      • 删除定时调度任务
      • 创建和更新定时调度任务
      • 查看定时调度任务
  • API3.0
    • 集群相关接口
      • 删除集群
  • Elasticsearch
    • 用户手册
      • YML参数配置
      • 权限管理
      • 智能巡检
      • 数据迁移
      • 基于BOS的快照与恢复
      • 集群列表
      • 账号使用说明
      • 多可用区部署
      • 定时调度
      • 数据量观测
      • 日志查询
        • 日志查询(旧)
        • 日志查询(新)
        • 日志导出
        • 查询语法
      • 集群配置
        • 配置同义词
      • 插件管理
        • 上传与安装自定义插件
        • Elasticsearch插件列表
        • 系统默认插件
          • analysis-pinyin拼音分词插件
          • IK中文分词插件与动态更新词典
          • compression-zstd插件
          • CCR插件
          • 限流插件
          • 动态同义词插件
          • 简繁体转换插件
          • ingest attachment插件
          • SQL插件
      • 配置变更
        • 节点数据迁移
        • 集群变配说明与建议
        • 集群扩缩容
      • 版本升级
        • 升级版本
        • 内核版本说明
        • 升级检查
      • 集群监控报警
        • 监控查看及指标说明
        • 配置报警
      • 集群管理
        • 集群重启
        • 变更HTTPS协议用户指南
        • 节点启停
        • 查看集群信息
        • 集群创建
        • 公网绑定
        • 修改集群名称
        • 跨可用区迁移集群
        • 集群删除
        • 集群列表
        • 自动续费
        • 密码重置
        • ES服务区域代码
      • 账户管理
        • 多用户访问控制
所有文档
menu
没有找到结果,请重新输入

Elasticsearch BES

  • 邀测版存储计算分离套餐介绍
  • 功能发布记录
  • 产品描述
    • 基本概念
    • 关键特性
    • 产品介绍
    • 产品性能
      • 4核16GB512GB通用型的3个数据节点实例基准性能指标
      • 8核16GB512GB计算型的3个数据节点实例基准性能测试
      • 16核32GB512GB计算型的3个数据节点实例基准性能指标
      • 4核8GB512GB计算型的3个数据节点实例基准性能测试
      • 8核32GB512GB通用型的3个数据节点实例基准性能指标
      • 16核64GB512GB通用型的3个数据节点实例基准性能指标
      • 概述
  • Python-SDK
    • 实例
    • 异常
    • 日志
    • 节点配置类型
    • 版本更新记录
    • 快速入门
    • 集群
    • BesClient
    • 安装SDK工具包
    • 概述
  • Kibana
    • Kibana使用指南
  • Logstash
    • Logstash使用指南
    • 实例管理
      • 实例详情信息
      • 实例扩缩容
      • 管道管理
      • 创建实例
      • 实例列表
      • 删除实例
  • 开发指南
    • Elasticsearch Restful API
    • 通过其他客户端访问Elasticsearch
    • Elasticsearch Java客户端
      • Low Level REST Client
      • Rest Client操作向量索引示例
      • Java REST Client
      • High Level REST Client
  • Java-SDK
    • 实例
    • 异常
    • 日志
    • 节点配置类型
    • 版本更新记录
    • 快速入门
    • 集群
    • BesClient
    • 安装SDK工具包
    • 概述
  • 向量检索特性
    • 资源规划
    • 关键概念
    • 应用场景
    • 快速入门
    • 算法介绍
    • 能力简介
    • 向量数据库
    • 操作指南
      • 写入和查询数据
      • 训练模型
      • 向量索引缓存管理
      • 创建索引
      • 基于Reciprocal Rank Fusion的融合查询
      • 参数优化
      • 7.4版本兼容说明
    • 最佳实践
      • 调优建议
      • BES RAG 最佳实践:基于LangChain+BES的私域知识的QA问答系统
    • 迁移方案
      • ES dense vector 切换为BES方案
  • ELK
    • 基于ELK构建日志分析系统
  • 增强特性
    • 慢查询隔离
    • 百度NLP中文分词词典动态更新
    • 百度NLP中文分词插件
    • 基于段文件的主从复制
    • 基于BOS的冷热数据分离
  • 快速入门
    • 访问Elasticsearch服务
    • 导入数据并搜索
    • 创建集群
    • 集群资源评估
  • 典型实践
    • 使用BSC将BOS中的数据导入Es
    • 使用BSC将Kafka中的数据导入Es
    • 基于CCR实现多集群跨地域高可用
    • 基于节点磁盘介质的冷热数据分离
  • 服务等级协议SLA
    • 数据迁移服务协议
    • BES服务等级协议SLA(V1.0)
  • 常见问题
    • Spark访问Es常见问题
    • Elasticsearch系统常见问题
    • 常见问题总览
  • 产品定价
    • 预付费
    • 计费说明
    • 配置变更费用说明
    • 后付费
  • API文档
    • 概述
    • 自动续费相关接口
      • 续费列表
      • 查看自动续费
      • 查看自动续费规则列表
      • 续费操作
      • 更新自动续费规则
      • 删除自动续费规则
      • 创建自动续费规则
    • 插件配置接口
      • 上传自定义插件
      • 卸载系统默认插件
      • 上传nlp词典
      • 安装系统默认插件
      • 获取默认和自定义插件列表
      • 卸载自定义插件
      • 安装自定义插件
      • 删除自定义插件
      • 查看nlp词典
    • 日志管理相关接口
      • 查看日志导出任务记录
      • 创建日志导出任务
      • 日志设置
      • 日志查询
    • 标签接口
      • 查询标签列表
      • 批量新增标签
      • 单个集群更新标签
    • 智能巡检接口
      • 查看近7天已完成的巡检任务列表
      • 近七天巡检概况
      • 查看手动巡检任务的配置
      • 集群巡检授权
      • 列举所有可选巡检项
      • 查询是否可以提交巡检任务
      • 最新一次巡检概况
      • 查看集群是否开启自动巡检
      • 修改手动巡检任务的配置
      • 开启或关闭自动巡检
      • 提交手动巡检任务
      • 查询今日已执行完成的手动巡检次数
      • 查看某巡检任务的执行状态和结果
    • 集群相关接口
      • 获取操作历史信息
      • 删除集群
      • 新增节点类型
      • 开启和关闭https
      • 查看集群详情信息
      • 重置密码
      • EIP绑定
      • EIP解绑
      • 是否开启Grafana监控
      • 获取数据量观测数据
      • 查看集群列表
      • 上传NLP分词词典
      • 创建集群
      • 智能评估
      • 集群blb信息
      • 用户可用代金券列表
      • 停止集群
      • 扩容集群
      • 启动集群
      • 重启集群
    • 实例相关接口
      • 批量停止实例
      • 启动实例
      • 查看缩容节点列表
      • 数据迁移
      • 数据迁移系统建议
      • 批量启动实例
      • 数据迁移回滚
      • 停止实例
      • 数据迁移节点列表
      • 删除实例
    • 配置修改相关接口
      • 获取同义词文件列表
      • 查看集群配置
      • 删除同义词配置文件
      • 上传同义词配置文件
      • 配置修改
    • 定时调度
      • 更新定时调度任务
      • 删除定时调度任务
      • 创建和更新定时调度任务
      • 查看定时调度任务
  • API3.0
    • 集群相关接口
      • 删除集群
  • Elasticsearch
    • 用户手册
      • YML参数配置
      • 权限管理
      • 智能巡检
      • 数据迁移
      • 基于BOS的快照与恢复
      • 集群列表
      • 账号使用说明
      • 多可用区部署
      • 定时调度
      • 数据量观测
      • 日志查询
        • 日志查询(旧)
        • 日志查询(新)
        • 日志导出
        • 查询语法
      • 集群配置
        • 配置同义词
      • 插件管理
        • 上传与安装自定义插件
        • Elasticsearch插件列表
        • 系统默认插件
          • analysis-pinyin拼音分词插件
          • IK中文分词插件与动态更新词典
          • compression-zstd插件
          • CCR插件
          • 限流插件
          • 动态同义词插件
          • 简繁体转换插件
          • ingest attachment插件
          • SQL插件
      • 配置变更
        • 节点数据迁移
        • 集群变配说明与建议
        • 集群扩缩容
      • 版本升级
        • 升级版本
        • 内核版本说明
        • 升级检查
      • 集群监控报警
        • 监控查看及指标说明
        • 配置报警
      • 集群管理
        • 集群重启
        • 变更HTTPS协议用户指南
        • 节点启停
        • 查看集群信息
        • 集群创建
        • 公网绑定
        • 修改集群名称
        • 跨可用区迁移集群
        • 集群删除
        • 集群列表
        • 自动续费
        • 密码重置
        • ES服务区域代码
      • 账户管理
        • 多用户访问控制
  • 文档中心
  • arrow
  • ElasticsearchBES
  • arrow
  • Elasticsearch
  • arrow
  • 用户手册
  • arrow
  • 插件管理
  • arrow
  • 系统默认插件
  • arrow
  • ingest attachment插件
本页目录
  • 简介
  • ingest attachment的pipeline参数含义
  • 使用方法:
  • 单附件
  • 1、创建pipeline
  • 2、向Elasticsearch中写入数据
  • 3、查询数据
  • 限制附件内容长度
  • 1、创建pipeline
  • 2、写入数据
  • 3、查询数据
  • 多附件
  • 1、创建pipeline
  • 2、写入多附件数据
  • 3、查询数据

ingest attachment插件

更新时间:2025-08-20

简介

Elasticsearch的ingest attachment插件可以将常用格式的文件作为附件写入Index。ingest attachment插件通过使用Apache Tika来提取文件,支持的文件格式有TXT、DOC、PPT、XLS和PDF等。

注意:

  • 源字段必须是base64编码的二进制。
  • 目前ingest attachment插件支持除5.6.16版本外所有版本的Elasticsearch实例。

ingest attachment的pipeline参数含义

Name 是否必须 Default Description
field yes - 从这个字段中获取base64编码
target_field no attachment 用于保留attachment信息,主要用于多附件的情况
indexed_chars no 100000 限制字段的最大保存字符数。-1为无限制。
indexed_chars_field no - 可以从数据中设定的字段取到indexed_chars限制的值。
properties no 全属性 选择需要存储的属性。例如 content, title, name, author, keywords, date, content_type, content_length, language
ignore_missing no false 如果使用true,并且 field 不存在, 则会忽略附件直接写入doc;否则则会报错。

使用方法:

单附件

1、创建pipeline

Plain Text
1PUT _ingest/pipeline/attachment
2{
3  "description" : "Extract attachment information",
4  "processors" : [
5    {
6      "attachment" : {
7        "field" : "data"
8      }
9    }
10  ]
11}

2、向Elasticsearch中写入数据

我们可以通过两种方式将附件写入Elasticsearch:

(1)直接写入附件的base64编码

Plain Text
1POST my_index/_doc?pipeline=attachment
2{
3  "filename": "test.docx",
4  "data": "5rWL6K+V5paH5Lu25pWw5o2udGVzdA=="
5}

其中,5rWL6K+V5paH5Lu25pWw5o2udGVzdA==是附件内容转化为base64的结果。

(2)通过Linux的curl命令直接将附件写入Elasticsearch

Plain Text
1curl -u user:pwd -H 'Content-Type: application/json' -XPOST IP:PORT/my_index/_doc?pipeline=attachment -d'
2{
3  "filename": "test.docx",
4  "data": "'`base64 -w 0 /test_path/test.docx | perl -pe 's/\n/\\n/g'`'"
5}'

通过这种方式,test.docx文件可以直接写入Elasticsearch。

3、查询数据

Plain Text
1GET my_index/_search
2{
3   "query": {
4      "match": {
5         "attachment.content": "test"
6      }
7   }
8}

得到结果如下:

Plain Text
1{
2   "took": 292,
3   "timed_out": false,
4   ...
5         {
6            "_index": "my_index",
7            "_type": "_doc",
8            "_id": "RL_1CXMByfR8Yao01Qs9",
9            "_score": 1.9692057,
10            "_source": {
11               "filename": "test.docx",
12               "data": "5rWL6K+V5paH5Lu25pWw5o2udGVzdA==",
13               "attachment": {
14                  "content_type": "text/plain; charset=UTF-8",
15                  "language": "lt",
16                  "content": "测试文件数据test",
17                  "content_length": 10
18               }
19            }
20         }
21   ...
22}

限制附件内容长度

1、创建pipeline

Plain Text
1PUT _ingest/pipeline/attachment
2{
3  "description" : "Extract attachment information",
4  "processors" : [
5    {
6      "attachment" : {
7        "field" : "data",
8        "indexed_chars" : 6,
9        "indexed_chars_field" : "my_field_size"
10      }
11    }
12  ]
13}

2、写入数据

Plain Text
1POST /my_index/_doc?pipeline=attachment
2{
3  "filename": "test.docx",
4  "data": "5rWL6K+V5paH5Lu25pWw5o2udGVzdA=="
5}
6POST /my_index/_doc?pipeline=attachment
7{
8  "filename": "test2.docx",
9  "my_field_size": 2
10  "data": "5rWL6K+V5paH5Lu25pWw5o2udGVzdA=="
11}

我们写入两个带有附件的doc,附件内容都是:测试文件数据test。其中第二个doc,我们将indexed_chars_field设定的字段my_field_size的值设定为2。

注:这里只列举了直接写入base64的方式。

3、查询数据

Plain Text
1GET my_index/_search
2{
3   "query": {
4      "match_all": {}
5   }
6}

得到结果如下:

Plain Text
1{
2  "took": 292,
3  "timed_out": false,
4  ...
5       {
6        "_index": "my_index",
7        "_type": "_doc",
8        "_id": "RL_1CXMByfR8Yao01Qs9",
9        "_score": 1.9692057,
10        "_source": {
11          "filename": "test.docx",
12          "data": "5rWL6K+V5paH5Lu25pWw5o2udGVzdA==",
13          "attachment": {
14            "content_type": "text/plain; charset=UTF-8",
15            "language": "lt",
16            "content": "测试文件数据",
17            "content_length": 6
18          }
19        }
20      },
21      {
22        "_index": "my_index",
23        "_type": "_doc",
24        "_id": "RL_1CXMByfR8Yao01Qs9",
25        "_score": 1.9692057,
26        "_source": {
27          "filename": "test2.docx",
28          "my_field_size": 2,
29          "data": "5rWL6K+V5paH5Lu25pWw5o2udGVzdA==",
30          "attachment": {
31            "content_type": "text/plain; charset=UTF-8",
32            "language": "lt",
33            "content": "测试",
34            "content_length": 2
35          }
36        }
37      }
38  ...
39}

可以看到,第一个doc,附件内容保留了6个字符,而第二个文档,保留了2个字符。

多附件

1、创建pipeline

Plain Text
1PUT _ingest/pipeline/attachment
2{
3  "description" : "Extract attachment information from arrays",
4  "processors" : [
5    {
6      "foreach": {
7        "field": "attachments",
8        "processor": {
9          "attachment": {
10            "target_field": "_ingest._value.attachment",
11            "field": "_ingest._value.data"
12          }
13        }
14      }
15    }
16  ]
17}

需要注意的是,多附件的情况下,field和target_field必须要写成_ingest._value.*,否则不能匹配正确的字段。

2、写入多附件数据

Plain Text
1POST /my_index/_doc?pipeline=attachment
2{
3  "attachments" : [
4    {
5      "filename" : "ipsum.txt",
6      "data" : "dGhpcyBpcwpqdXN0IHNvbWUgdGV4dAo="
7    },
8    {
9      "filename" : "test.txt",
10      "data" : "VGhpcyBpcyBhIHRlc3QK"
11    }
12  ]
13}

注:这里只列举了直接写入base64的方式。

3、查询数据

Plain Text
1GET my_index/_search
2{
3   "query": {
4      "match_all": {}
5   }
6}

得到结果如下:

Plain Text
1{
2  "took": 292,
3  "timed_out": false,
4  ...
5      {
6        "_index": "my_index",
7        "_id": "RL_1CXMByfR8Yao01Qs9",
8        "_version": 1,
9        "_seq_no": 50,
10        "_primary_term": 1,
11        "found": true,
12        "_source": {
13          "attachments": [
14            {
15              "filename": "ipsum.txt",
16              "data": "dGhpcyBpcwpqdXN0IHNvbWUgdGV4dAo=",
17              "attachment": {
18                "content_type": "text/plain; charset=ISO-8859-1",
19                "language": "en",
20                "content": "this is\njust some text",
21                "content_length": 24
22              }
23            },
24            {
25              "filename": "test.txt",
26              "data": "VGhpcyBpcyBhIHRlc3QK",
27              "attachment": {
28                "content_type": "text/plain; charset=ISO-8859-1",
29                "language": "en",
30                "content": "This is a test",
31                "content_length": 16
32              }
33            }
34          ]
35        }
36      }
37  ...
38}

上一篇
简繁体转换插件
下一篇
SQL插件