springboot 中如何使用 ingest-attachment
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相关推荐
- SpringBoot中使用POI实现自定义Excel布局式导出
场景 Apache POI 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java API.用它可以使用Java读取和创建,修改M ...
- springboot中使用poi导出excel文件(亲测实现了第一个功能)
1.POI简介 Jakarta POI 是一套用于访问微软格式文档的Java API. 组件HWPF用于操作Word的; 组件HSSF用于操作Excel格式文件. 2.常用组件 HSSFWorkboo ...
- ES 检索 word、pdf 文档插件 ingest attachment 的管道配置和文档结构映射
一.安装 ingest attachment 插件 安装方法:https://blog.csdn.net/catoop/article/details/124468788 二.定义文本抽取管道 1.单 ...
- Elasticsearch 文档内容检索插件 ingest attachment 安装
Ingest Attachment Processor Plugin 是一个文本抽取插件,本质上是利用了 Elasticsearch的ingest node功能,提供了关键的预处理器 attachme ...
- SpringBoot中通过接口下载resources下的文件
SpringBoot中通过接口下载resources下的文件 解决的问题 当项目打成jar包进行部署时,一些示例文件放在resources目录下,提供接口供用户访问下载 文件存放位置 接口实现 @Re ...
- Elasticsearch 如何处理 word pdf ?(Ingest Attachment Processor Plugin)
本文主要介绍如何使用ES插件将word/pdf等文档导入ES中以及如何使用JAVA API操作写入读取信息 Ingest Attachment Processor Plugin插件允许Elastics ...
- 《springboot中实现excel表格导出》
<springboot中实现excel表格导出> 简介 在Spring Boot中,实现Excel表格导出的方式有很多种,以下是几种常见的方法: 使用Apache POI:Apache P ...
- SpringBoot中文件下载、拦截器、war包部署、jar包部署
3. SpringBoot中文件下载 将可以被下载资源放在磁盘的 D:\springbootcodes\springboot_day6\download 路径 这里我们使用jsp开发 引入依赖使tom ...
- 在SpringBoot中使用Spring Session解决分布式会话共享问题
在SpringBoot中使用Spring Session解决分布式会话共享问题 问题描述: 每次当重启服务器时,都会导致会员平台中已登录的用户掉线.这是因为每个用户的会话信息及状态都是由session ...
最新文章
- 鸢尾花识别问题,萼片有什么用?
- 【框架篇】mvc、mvp、mvvm使用关系总结
- Spring Data,MongoDB和JSF集成教程
- BAT文件命名中含有英文括号运行出错
- linux slf4j.rpm,Centos下安装nginx rpm包
- postgresql 参数替换 游标_解决postgresql和oracle如何把游标cursor数据存到数组array
- linux高级知识,LAMP架构(一),MYSQL安装
- OC可变数组的常用操作
- pythotn基础篇——条件分支与循环--2
- 小写数字转大写_微软太坏了,这个函数居然被隐藏了,用它搞定数值转中文大小写...
- 没有人能拒绝这个网站,没有人!
- Msm8960(APQ8064)平台的MSM-AOSP-kitkat编译适配(3):寻找正确的代码版本
- 趋势杀毒软件注意事项
- 什么是MKV文件以及如何打开和播放MKV?
- Nginx for Mac - 苹果系统SSL证书安装
- PHP民俗文化管理系统,中国民俗文化
- 医院运维管理平台(模板)
- 【20230407】NVIDIA显卡算力、Jetson比较
- 系统时间不够精确?试试RTC(实时时钟)
- for循环不执行的小坑
热门文章
- 2017 Python 问卷调查结果初步分析
- 新版蓝色UI抖音快手点赞系统源码+完整后台
- 懒,不想登录Cisco Packet Tracer 7.3怎么办?
- “北大数学系扫地僧” 等十人获奖,均分1000万元,达摩院2021青橙奖出炉
- 干货课堂丨分享一种LCD驱动电路方案【飞凌嵌入式】
- python中的相对导入//__name__和__package__的作用//以及相对导入的两个经典错误
- 计算机网路之面试常考
- 【NOIP2005 提高组】篝火晚会
- kettel连接Access常见错误解决方案
- 5G/NR, 3GPP 38.215: SS-RSRP, CSI-RSRP