springboot 中如何使用elasticsearch ingest-attachment

我这里 是默认你 springboot 集成了 elasticsearch 的,如果没有 你自己先去完成 集成,这不多说了
默认你已经建好了通道

1.写上传也页面 略;

2 .上代码(这里直白的讲解,不使用任何高级工具类)

application.properties 里有什么略 自己脑部

****没有对公共代码 封装 只为 让大家看明白,是将工具里的代码 罗列到 一起的  可能有些 bug,  大家凑合看  哈****import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.TransportAddress;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;// 通过注解将配置文件中的  index (相当于关系型数据库的 库)值 注入进来,
@Value("${es.index}")
private String index;// 通过注解将将配置文件中的   type (相当于关系型数据库的表)值 注入进来
@Value("${es.type}")
private String type;// 通过注解将将配置文件中的   attachment(我们安装完 ingest-attachment 后 手动创建的 pipeline)值 注入进来,//这里是通道的名称,我叫做了attachment
@Value("${es.attachment}")
private String attachment;// 通过注解将将配置文件中的   cluster_name(集群名称)值 注入进来
@Value("${es.cluster_name}")
private String cluster_name;// 通过注解将  ip 值 注入进来
@Value("${es.ip}")
private String ip;// 通过注解将 端口 值 注入进来
@Value("${es.port}")
private String ip;@Autowired
private  TransportClient transportClient;//file   这个参数就是用来接受 word文档的
@PostMapping("addWord")
public ModelAndView addEmp( @RequestParam("file") MultipartFile file){ModelAndView m =new ModelAndView();//将word 转成 base64 的编码  记得删除空格 和换行   只保留有效数据String encode = base64Encoder.encode(file.getBytes()).replaceAll("\r|\n", "");XContentBuilder xContentBuilder=null;String name="";if(null!=file){//获取文件的文字name=file.getOriginalFilename();}try {//构建通道里的数据  这里是将通道里加入数据, 让ingest-attachment  帮我们抽取文本,//注意我们没有手动抽取文本 是插件版我们做的,这里我默认你已经构建了通道(我使用kibana构建的)xContentBuilder = XContentFactory.jsonBuilder().startObject().field("name", name).field("data", encode ).endObject();}catch (Exception e){e.printStackTrace();}// 配置elasticsearch 集群的 settingsSettings settings = Settings.builder().put("cluster.name", cluster_name) //连接的集群名.put("client.transport.ignore_cluster_name", true) //如果集群名不对,也能连接.build();// 根据 ip   port   构建 客户端transportClient = new PreBuiltTransportClient(settings).addTransportAddress(new TransportAddress(InetAddress.getByName(ip),Integer.valueOf(port)));// 使用客户端设置 将 通道值  通过  哪个  通道(attachment[其实就是pipeline])  抽取文本存入 哪个index 的  哪个 type中 // 这里执行使用的是 get()transportClient.prepareIndex(index,type).setPipeline(attachment).setSource(xContentBuilder).get();m.setViewName("success");return m;
}
//  使用kibana  查看   查index  里所有的数据  或者  模糊匹配 抽取到的文本里的内容,其实已经完成了 对word文本  存入 es

springboot 中如何使用 ingest-attachment相关推荐

  1. SpringBoot中使用POI实现自定义Excel布局式导出

    场景 Apache POI 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java API.用它可以使用Java读取和创建,修改M ...

  2. springboot中使用poi导出excel文件(亲测实现了第一个功能)

    1.POI简介 Jakarta POI 是一套用于访问微软格式文档的Java API. 组件HWPF用于操作Word的; 组件HSSF用于操作Excel格式文件. 2.常用组件 HSSFWorkboo ...

  3. ES 检索 word、pdf 文档插件 ingest attachment 的管道配置和文档结构映射

    一.安装 ingest attachment 插件 安装方法:https://blog.csdn.net/catoop/article/details/124468788 二.定义文本抽取管道 1.单 ...

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

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

  5. SpringBoot中通过接口下载resources下的文件

    SpringBoot中通过接口下载resources下的文件 解决的问题 当项目打成jar包进行部署时,一些示例文件放在resources目录下,提供接口供用户访问下载 文件存放位置 接口实现 @Re ...

  6. Elasticsearch 如何处理 word pdf ?(Ingest Attachment Processor Plugin)

    本文主要介绍如何使用ES插件将word/pdf等文档导入ES中以及如何使用JAVA API操作写入读取信息 Ingest Attachment Processor Plugin插件允许Elastics ...

  7. 《springboot中实现excel表格导出》

    <springboot中实现excel表格导出> 简介 在Spring Boot中,实现Excel表格导出的方式有很多种,以下是几种常见的方法: 使用Apache POI:Apache P ...

  8. SpringBoot中文件下载、拦截器、war包部署、jar包部署

    3. SpringBoot中文件下载 将可以被下载资源放在磁盘的 D:\springbootcodes\springboot_day6\download 路径 这里我们使用jsp开发 引入依赖使tom ...

  9. 在SpringBoot中使用Spring Session解决分布式会话共享问题

    在SpringBoot中使用Spring Session解决分布式会话共享问题 问题描述: 每次当重启服务器时,都会导致会员平台中已登录的用户掉线.这是因为每个用户的会话信息及状态都是由session ...

最新文章

  1. 鸢尾花识别问题,萼片有什么用?
  2. 【框架篇】mvc、mvp、mvvm使用关系总结
  3. Spring Data,MongoDB和JSF集成教程
  4. BAT文件命名中含有英文括号运行出错
  5. linux slf4j.rpm,Centos下安装nginx rpm包
  6. postgresql 参数替换 游标_解决postgresql和oracle如何把游标cursor数据存到数组array
  7. linux高级知识,LAMP架构(一),MYSQL安装
  8. OC可变数组的常用操作
  9. pythotn基础篇——条件分支与循环--2
  10. 小写数字转大写_微软太坏了,这个函数居然被隐藏了,用它搞定数值转中文大小写...
  11. 没有人能拒绝这个网站,没有人!
  12. Msm8960(APQ8064)平台的MSM-AOSP-kitkat编译适配(3):寻找正确的代码版本
  13. 趋势杀毒软件注意事项
  14. 什么是MKV文件以及如何打开和播放MKV?
  15. Nginx for Mac - 苹果系统SSL证书安装
  16. PHP民俗文化管理系统,中国民俗文化
  17. 医院运维管理平台(模板)
  18. 【20230407】NVIDIA显卡算力、Jetson比较
  19. 系统时间不够精确?试试RTC(实时时钟)
  20. for循环不执行的小坑

热门文章

  1. 2017 Python 问卷调查结果初步分析
  2. 新版蓝色UI抖音快手点赞系统源码+完整后台
  3. 懒,不想登录Cisco Packet Tracer 7.3怎么办?
  4. “北大数学系扫地僧” 等十人获奖,均分1000万元,达摩院2021青橙奖出炉
  5. 干货课堂丨分享一种LCD驱动电路方案【飞凌嵌入式】
  6. python中的相对导入//__name__和__package__的作用//以及相对导入的两个经典错误
  7. 计算机网路之面试常考
  8. 【NOIP2005 提高组】篝火晚会
  9. kettel连接Access常见错误解决方案
  10. 5G/NR, 3GPP 38.215: SS-RSRP, CSI-RSRP