浏览代码

解决因为ocr报错,未解析成功又删除索引任务的问题

wukai 1 年之前
父节点
当前提交
0b17edb2fd
共有 3 个文件被更改,包括 28 次插入18 次删除
  1. 21 18
      doc-biz/src/main/java/com/doc/biz/service/impl/ElasticSearchServiceImpl.java
  2. 二进制
      license.lic
  3. 7 0
      register_code.txt

+ 21 - 18
doc-biz/src/main/java/com/doc/biz/service/impl/ElasticSearchServiceImpl.java

@@ -95,25 +95,28 @@ public class ElasticSearchServiceImpl implements IElasticSearchService {
     public void taskSave(DocInfo info) {
         String fileType = info.getFileType().toLowerCase();
         String content = "";
-        if (Constants.IMAGE_EXTENSION.contains(fileType)) {
-            content = getContent(fileType, info.getFileId());
-        } else {
-            Map<String, Function<byte[], String>> handlerMap = createHandlerMap(fileType);
-            content = getContent(handlerMap, fileType, info.getFileId());
-            if (Constants.PDF_EXTENSION.contains(fileType) && StringUtils.isEmpty(content)) {
-                //如果是PDF未解析成功,则另外进行解析工作
+        try {
+            if (Constants.IMAGE_EXTENSION.contains(fileType)) {
                 content = getContent(fileType, info.getFileId());
+            } else {
+                Map<String, Function<byte[], String>> handlerMap = createHandlerMap(fileType);
+                content = getContent(handlerMap, fileType, info.getFileId());
+                if (Constants.PDF_EXTENSION.contains(fileType) && StringUtils.isEmpty(content)) {
+                    //如果是PDF未解析成功,则另外进行解析工作
+                    content = getContent(fileType, info.getFileId());
+                }
             }
 
+            if (StringUtils.isNotEmpty(content)) {
+                comboIndex(info.getSpaceId());
+                EsDocInfo esDocInfo = new EsDocInfo(info.getDocId(), content);
+                esDocInfoService.save(esDocInfo);
+            }
+            //执行完,删除索引任务
+            indexService.deleteDocIndexByDocId(info.getDocId());
+        } catch (Exception e) {
+            log.error("解析图片错误:{}", e.getMessage());
         }
-
-        if (StringUtils.isNotEmpty(content)) {
-            comboIndex(info.getSpaceId());
-            EsDocInfo esDocInfo = new EsDocInfo(info.getDocId(), content);
-            esDocInfoService.save(esDocInfo);
-        }
-        //执行完,删除索引任务
-        indexService.deleteDocIndexByDocId(info.getDocId());
     }
 
     /**
@@ -239,12 +242,12 @@ public class ElasticSearchServiceImpl implements IElasticSearchService {
      * @param fileId   文件ID
      * @return 解析结果
      */
-    private String getContent(String fileType, String fileId) {
+    private String getContent(String fileType, String fileId) throws Exception {
         if (Constants.IMAGE_EXTENSION.contains(fileType)) {
             try {
                 return ocrService.recognition(fileId);
             } catch (Exception e) {
-                log.error("解析图片错误:{}", e.getMessage());
+                throw new Exception(e.getMessage());
             }
         }
         String pdf = ".pdf";
@@ -258,7 +261,7 @@ public class ElasticSearchServiceImpl implements IElasticSearchService {
                 try {
                     sb.append(ocrService.recognition(f));
                 } catch (Exception e) {
-                    log.error("解析图片错误:{}", e.getMessage());
+                    throw new RuntimeException(e);
                 }
             });
             return sb.toString();

二进制
license.lic


+ 7 - 0
register_code.txt

@@ -0,0 +1,7 @@
+H4sIAAAAAAAAAB2SyQFEIQhDWwJZLUe2/ksY/pw8AAm8CHzYT0GHBs2MvQkb9AjndGxClTRKClKz
+24mZihycCMF40XrqljK9AX5Tb97xVj9ikXAul/O0g51UHnwisl3uWOTEBIaIaYFDbI5qr2QNUFO8
+wpOOEOM5cu4cErG6gXwzkh1c/qP3ah9SFekdPZco3cefdWBFutS3OZ01aKVX3qbnuXQZrDwCvMwT
+3GD93jkzqhM19BJghl/0XDNVOHXerBTBUatuNJKLXZWC+tjwXbgUEkKFs2jfGsI1kaOcMnxhwN+9
+Y+Q6NcUI2UsVPomaJogF2acPZ+8RxI/ECYbxjccxw2zM2MkjSXNfaYBSBAU+yyUHDYtz+y+vTZjb
+bt+uRbN31zVqPFYMp6+U+EbaIFn0YHuubyJhsUGlyJLVsSVT5ilkHrgaV3VfuZnCREiPw7oaNOyB
+p966iFvayBqSxQZubHbbrC53CwJz9z+wvcTyxT0pLbvxDzM5f9mQAgAA