elasticsearc在后端上传word,PDF,Txt文本后将里面正文内容导入到elasticsearch字段

最先再es里面安装插件很重要
在es数据库的目录下有个bin文件夹在这个文件夹下执行
./elasticsearch-plugin install ingest-attachment
插件目录下可以看到
在这里插入图片描述
如果搭es集群每一个节点都要有
启动es可以看到
在这里插入图片描述
说明安装好了

创建自己的文本抽取管道pipeline

其中url里的attachment可以自定义

curl -X PUT “localhost:9200/_ingest/pipeline/attachment” -d ‘{
“description” : “Extract attachment information”,
“processors”:[
{
“attachment”:{
“field”:“data”,
“indexed_chars” : -1,
“ignore_missing”:true
}
},
{
“remove”:{“field”:“data”}
}]}’

建立索引和映射:

在这里插入图片描述
在kibana里面操作是这样的
PUT _ingest/pipeline/attachment
{
“description” : “Extract attachment information”,
“processors” : [
{
“attachment” : {
“field” : “file-contents”,
“indexed_chars” : -1,
“ignore_missing”:true
}
},
{
“remove”: {
“field”: “file-contents”
}
}
]
}

在这里插入图片描述
然后建立映射是这样的
PUT /wodewendang
{
“settings”: {
“number_of_shards”: 3,
“number_of_replicas”: 0
},
“mappings”: {
“document”:{
“properties”:{
“documentid”:{
“type”:“long”
},
“documentname”:{
“type”:“text”,
“analyzer”:“ik_max_word”
},
“documentsize”:{
“type”:“long”
},
“uploader”:{
“type”:“text”,
“analyzer”:“ik_max_word”
},
“uploadtime”:{
“type”:“date”
},
“attachment”: {
“properties”: {
“content”: {
“type”: “text”,
“analyzer”: “ik_max_word”
}
}
}
}
}
}

}
在这里插入图片描述
正文上传时候word,pdf,txt先转成base64
在这里插入图片描述
直接转成了这种中文
在这里插入图片描述
搜索正文
GET /wodewendang/document/_search
{

“query”:{

 "match":{

    "attachment.content":"编码"

}}}
在这里插入图片描述

这里用kibana
输入一段正文做尝试

这里是添加的Java api:
做一个test
@Test
public void esAddTest8() throws Exception {
Settings settings=Settings.builder().put(“cluster.name”, “cluster-elasticsearch-prod”).build();
TransportClient client=new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName(“192.168.1.109”), 9300));
String importText = importText();
String randomUUID = UUID.randomUUID().toString();
XContentBuilder doc=XContentFactory.jsonBuilder()
.startObject()
.field(“File_ID”, randomUUID)
.field(“FileName”,“云之遥水库信息”)
.field(“FileSize”, 65555)
.field(“User_ID”, “李凡”)
.field(“LastChangerTime”, “2019-11-28”)
.field(“file-contents”,importText)
.endObject();
IndexResponse response=client.prepareIndex(“tgdsm”, “fileinfo”, “563”).setSource(doc).setPipeline(“attachment”).get();
System.out.println("============="+response.status());
}
截图标注
在这里插入图片描述
如果不加setPipeline(“attachment”)
在这里插入图片描述
加入后会直接加入结果如下:
在这里插入图片描述

加上之后:
在这里插入图片描述
文本内容被转译
在这里插入图片描述

搜索
在这里插入图片描述

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
SpringBoot是一种快速构建基于Spring框架的Java应用程序的工具。为了实现对wordpdftxt文件的非结构化数据全文内容检索,可以使用SpringBoot和ElasticsearchES)来实现。Elasticsearch是一种开源搜索引擎,其使用简单、快速高效、支持几乎所有类型的查询操作。 首先,需要将wordpdftxt文件的非结构化数据存储到ES中。可以使用Java中的POI、Apache Tika等工具来解析这些文件,将其转换为需要的文本格式,并将其存储到ES中。可以使用Spring Data Elasticsearch来实现与ES的交互,并创建一个Document对象来表示每个文件。 其次,需要编写一个查询方法来搜索这些文件。可以使用ES提供的全文检索功能,使用户可以搜索其内容并找到与搜索关键字相关联的文件。可以使用Spring Data Elasticsearch来创建查询对象并执行查询,将结果返回给用户。 需要注意的是,对于WordPDF等二进制文件,需要将其转换为文本格式,而对于文本文件,只需将其直接存储到ES中。此外,还需考虑一些优化措施,如数据分片、数据备份和恢复等,以确保数据的完整性和可靠性。 最后,SpringBoot和ES的集成可以大大简化非结构化数据全文内容检索的开发和部署工作。它不仅可以提高检索效率,还可以保证数据的高可靠性和安全性。因此,它是一种非常有用的工具,可以满足企业的数据检索和管理需求。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值