Browse Source

读取文件到es

LiuChangLan 4 years ago
parent
commit
0809708a41

+ 8 - 0
pom.xml

@@ -20,6 +20,7 @@
         <tk.mapper.version>2.1.5</tk.mapper.version>
         <druid.version>1.1.17</druid.version>
         <fast.json.version>1.2.47</fast.json.version>
+        <hutool.version>5.4.0</hutool.version>
     </properties>
 
     <dependencies>
@@ -80,6 +81,13 @@
             <artifactId>fastjson</artifactId>
             <version>${fast.json.version}</version>
         </dependency>
+
+        <!-- 工具包-->
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>${hutool.version}</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 1 - 1
src/main/resources/application.yml

@@ -57,7 +57,7 @@ spring:
 #      elasticPassword: changeme
       elasticsearch:
         rest:
-          hostNames: 192.168.0.190:9200
+          hostNames: 192.168.0.117:9200
           ##hostNames: 192.168.8.25:9200,192.168.8.26:9200,192.168.8.27:9200  ##集群地址配置
         dateFormat: yyyy.MM.dd
         timeZone: Asia/Shanghai

+ 13 - 0
src/main/resources/elasticsearch/file.xml

@@ -0,0 +1,13 @@
+<properties>
+    <property name="query">
+        <![CDATA[
+         {
+              "query": {
+                "match_all": {}
+              },
+              "from": 0,
+              "size": 20
+          }
+        ]]>
+    </property>
+</properties>

+ 31 - 1
src/test/java/com/guozhi/elasticsearch/DocDemo.java

@@ -1,5 +1,7 @@
 package com.guozhi.elasticsearch;
 
+import cn.hutool.core.io.FileUtil;
+import com.alibaba.druid.util.Base64;
 import com.alibaba.fastjson.JSON;
 import org.frameworkset.elasticsearch.ElasticSearchHelper;
 import org.frameworkset.elasticsearch.boot.BBossESStarter;
@@ -8,8 +10,10 @@ import org.frameworkset.elasticsearch.client.ClientOptions;
 import org.frameworkset.elasticsearch.entity.ESDatas;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
+import sun.rmi.runtime.Log;
 
 import javax.annotation.Resource;
+import java.io.File;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -29,7 +33,8 @@ public class DocDemo {
 
 //        delete("demo","demo","1");
 
-        select();
+        insertFile();
+//        select();
     }
 
     /**
@@ -69,4 +74,29 @@ public class DocDemo {
         ESDatas<Map> mapESDatas = restClient.searchList("archives/_search", "query", null, Map.class);
         System.out.println(JSON.toJSONString(mapESDatas));
     }
+
+    void insertFile(){
+        File file = new File("C:\\Users\\84731\\Desktop\\面试资料\\后端面试题\\说说volatile关键字 .pdf");
+        // 获取文件字节数组
+        byte[] bytes = FileUtil.readBytes(file);
+        // 转成base64
+        String sa = Base64.byteArrayToBase64(bytes);
+        // 参数
+        Map<String,Object> param = new HashMap<String, Object>();
+        // 配置
+        ClientOptions clientOptions = new ClientOptions();
+        // id字段
+        clientOptions.setIdField("id");
+        // 是否刷新
+        clientOptions.setRefresh("true");
+        param.put("id",3);
+        param.put("filename","aaa");
+        param.put("data",sa);
+        // 设置处理管道
+        clientOptions.setPipeline("attachment");
+
+        System.out.println("配置完成,发起请求");
+        String s = bbossESStarter.getRestClient().addDocument("file_index_test", "", param, clientOptions);
+        System.out.println("请求结束,插入完成");
+    }
 }

+ 24 - 0
src/test/java/com/guozhi/elasticsearch/FileToEs.java

@@ -0,0 +1,24 @@
+package com.guozhi.elasticsearch;
+
+import cn.hutool.core.io.FileUtil;
+import com.alibaba.druid.util.Base64;
+
+import java.io.File;
+
+/**
+ * @author LiuchangLan
+ * @date 2020/10/30 13:42
+ */
+public class FileToEs {
+
+    public static void main(String[] args) {
+
+        File file = new File("C:\\Users\\84731\\Desktop\\刘长兰_工作清单.xlsx");
+
+        byte[] bytes = FileUtil.readBytes(file);
+        String s = Base64.byteArrayToBase64(bytes);
+        System.out.println(s);
+
+    }
+
+}