一、安装 ingest attachment 插件

安装方法:https://blog.csdn.net/catoop/article/details/124468788

二、定义文本抽取管道

1.单附件(示例)

PUT _ingest/pipeline/attachment
{"description": "Extract attachment information","processors": [{"attachment": {"field": "data","ignore_missing": true}},{"remove": {"field": "data",}}]
}

其中remove段的配置表示附件经过管道处理后删除附件本身,只将附件的文字存入ES中,附件自身base64的数据抛弃掉。

2.多附件(示例)

PUT _ingest/pipeline/attachment
{"description": "Extract attachment information","processors": [{"foreach": {"field": "attachments","processor": {"attachment": {"field": "_ingest._value.data","target_field": "_ingest._value.attachment"}}}},{"foreach": {"field": "attachments","processor": {"remove": {"field": "_ingest._value.data","target_field": "_ingest._value.attachment"}}}}]
}

需要注意的是,多附件的情况下,field 和 target_field 必须要写成 _ingest._value.*,否则不能匹配正确的字段。
从 es 8.0 版本开始,需要删除二进制文件内容,只需要为 attachment 添加一个属性 remove_binary 为 true,就不需要像上面那样单独写一个 remove 处理器了。

三、建立文档结构映射

1.单附件(示例)

PUT newdoc_dispatch
{"mappings": {"properties": {"businessId":{"type": "keyword"},"title":{"type": "text","analyzer": "ik_smart"},"fullDocNO":{"type": "text","analyzer": "ik_smart"},"drafterUser":{"type": "keyword"},"dispatchNO":{"type": "text","analyzer": "ik_smart"},"dispatchDept":{"type": "keyword"},"dispatchTime":{"type": "date"},"abolish":{"type": "keyword"},"tenantId":{"type": "keyword"},"attachment": {"properties": {"content":{"type": "text","analyzer": "ik_smart"}}}}}
}

2.多附件(示例)

PUT newdoc_dispatch
{"mappings": {"properties": {"businessId":{"type": "keyword"},"title":{"type": "text","analyzer": "ik_smart"},"fullDocNO":{"type": "text","analyzer": "ik_smart"},"drafterUser":{"type": "keyword"},"dispatchNO":{"type": "text","analyzer": "ik_smart"},"dispatchDept":{"type": "keyword"},"dispatchTime":{"type": "date","format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"},"abolish":{"type": "keyword"},"tenantid":{"type": "keyword"},"attachments" : {"properties" : {"attachment" : {"properties" : {"content" : {"type" : "text","analyzer": "ik_smart"}}}        }}}}
}

工程中的代码是多附件的示例,mapping结构映射的对象详见ESDispatchDocumentVo

官网参考资料:https://www.elastic.co/guide/en/elasticsearch/plugins/current/using-ingest-attachment.html
其他参考资料:https://www.cnblogs.com/ncore/p/10475909.html
代码工程参考:https://gitee.com/catoop/es-attachment


(END)

ES 检索 word、pdf 文档插件 ingest attachment 的管道配置和文档结构映射相关推荐

  1. 【ElasticSearch】检索word pdf插件ingest attachment的管道配置

    文章目录 单附件: 1.创建管道single_attachment 定义文本抽取管道 2.创建index 创建索引库 3.索引数据 插入word文档 4.查询 查询所有 多附件: 1.创建管道sing ...

  2. 图片识别文字OCR-制作可检索的PDF文档

    好友发了个链接 怎样快速扫描一本书并做成电子版? 让我帮忙看看怎么把一本纸质书制作成可检索的PDF文档,他想用移动工具学习那本书,于是实践后整理出下面步骤. 操作系统:win10+ubuntu16.0 ...

  3. Elasticsearch 文档内容检索插件 ingest attachment 安装

    Ingest Attachment Processor Plugin 是一个文本抽取插件,本质上是利用了 Elasticsearch的ingest node功能,提供了关键的预处理器 attachme ...

  4. ES检索多个文档Mget

    像Elasticsearch一样,检索多个文档依旧非常快.合并多个请求可以避免每个请求单独的网络开销.如果你需要从Elasticsearch中检索多个文档,相对于一个一个的检索,更快的方式是在一个请求 ...

  5. Python读取PDF文档(或TXT)

    字符串在Python内部的表示是Unicode编码,首先我们来认识Python中encode()和decode()的作用与区别: 在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的 ...

  6. 面向开放域密集检索多视图文档表示学习,微软提出​MVR,性能SOTA!(ACL 2022)...

    关注公众号,发现CV技术之美 本文分享 ACL 2022 论文『Multi-View Document Representation Learning for Open-Domain Dense Re ...

  7. 18-关系型数据和文档型数据库有什么区别?

    关系数据库(Relational Database)是建立在关系模型基础上的数据库,借助于几何代数等数学概念和方法来处理数据库中的数据.所谓关系模型是一对一.一对多或者多对多等关系,常见的关系型数据库 ...

  8. mac icloud 桌面_如何使用iCloud将Mac的桌面和文档同步到其他设备

    mac icloud 桌面 Over time, your Mac has inevitably amassed a lot of files in the Desktop and Documents ...

  9. java实现word文档转换pdf文档并且添加水印功能使用插件Aspose.Words

    前段时间,项目需要自动生成word文档,用WordFreeMarker生成word文档后,又要求生成的文档能在浏览器浏览,思来想去,把word文档转成pdf就好了,于是乎研究了一下. 将word文档转 ...

最新文章

  1. linux 单独取出本机IP地址
  2. python入门之函数调用第一关_零基础学习 Python 之与函数的初次相见
  3. mysql pow函数怎么用_pow函数怎么用
  4. 曾辉机器人_武昌理工学子在2020年中国机器人大赛中夺冠
  5. 线性结构 —— 分块算法 —— 分块九讲
  6. 前端框架Vue(3)——vue-cli 目录结构
  7. fiddler看ip地址_Fiddler查看IP和响应时间
  8. BIN转HEX,HEX转BIN,互相转换工具,PIC
  9. LiveData的postValue与setValue多次调用问题
  10. uni-app小程序与app端的兼容问题
  11. mysql dual表用法_详解Oracle数据库中DUAL表的使用
  12. 【微信小程序】小程序调起付款码
  13. 有一个已排好序的数组,要求输入一个数后,按原来排序规律将他插入数组。
  14. html表格怎么取消自动换行,css怎么控制表格不要自动换行?
  15. u盘/移动硬盘的视频文件出现损坏怎么办?修复损坏视频办法分享!
  16. 【深度长文】循序渐进解读Oracle AWR性能分析报告
  17. Component属性
  18. NavigationController 常用方法归总
  19. alias linux 执行命令,Linux系统alias命令编写实现命令别名方法介绍
  20. vue-cli使用ESLint记录

热门文章

  1. C# 处理PPT水印(一)——添加水印效果(文字水印、图片水印)
  2. 空指针异常NullPointerException(小结)
  3. 【转】P2P-BT对端管理协议
  4. 服务器强制关机会有什么影响,真相揭秘:强制关机对电脑硬件伤害大吗?
  5. 删除Mac中的Windows启动项
  6. 谷歌tts使用粤语读出内容
  7. MySQL 8.0初体验
  8. 基于JAVA博物馆交流平台计算机毕业设计源码+系统+lw文档+部署
  9. RxJava的Single、Completable以及Maybe
  10. 【zzuli期中考试】字母倒序