fix(文件搜索): ES文件搜索流程优化

This commit is contained in:
MAC 2022-05-05 23:12:03 +08:00
parent d9779fb181
commit bc9b48b524
4 changed files with 14 additions and 13 deletions

View File

@ -67,8 +67,6 @@ public class AsyncTaskComp {
}
public Future<String> deleteUserFile(String userFileId) {
long begin = System.currentTimeMillis();
UserFile userFile = userFileService.getById(userFileId);
if (userFile.getIsDir() == 1) {
LambdaQueryWrapper<UserFile> userFileLambdaQueryWrapper = new LambdaQueryWrapper<>();
@ -105,11 +103,17 @@ public class AsyncTaskComp {
}
}
long end = System.currentTimeMillis();
System.out.println("任务 deleteUserFile 耗时=" + (end - begin));
return new AsyncResult<String>("deleteUserFile");
}
public Future<String> checkESUserFileId(String userFileId) {
UserFile userFile = userFileMapper.selectById(userFileId);
if (userFile == null) {
fileDealComp.deleteESByUserFileId(userFileId);
}
return new AsyncResult<String>("checkUserFileId");
}
public Future<String> saveUnzipFile(UserFile userFile, FileBean fileBean, int unzipMode, String entryName, String filePath) {
String unzipUrl = UFOPUtils.getTempFile(fileBean.getFileUrl()).getAbsolutePath().replace("." + userFile.getExtendName(), "");

View File

@ -287,7 +287,7 @@ public class FileDealComp {
fileSearch.setContent(content);
}*/
elasticsearchClient.index(i -> i.index("filesearch").id(String.valueOf(fileSearch.getUserFileId())).document(fileSearch));
elasticsearchClient.index(i -> i.index("filesearch").id(fileSearch.getUserFileId()).document(fileSearch));
}
} catch (Exception e) {
log.debug("ES更新操作失败请检查配置");
@ -300,7 +300,7 @@ public class FileDealComp {
try {
elasticsearchClient.delete(d -> d
.index("filesearch")
.id(String.valueOf(userFileId)));
.id(userFileId));
} catch (Exception e) {
log.debug("ES删除操作失败请检查配置");
}

View File

@ -16,6 +16,7 @@ import com.qiwenshare.common.util.security.JwtUser;
import com.qiwenshare.common.util.security.SessionUtil;
import com.qiwenshare.file.api.IFileService;
import com.qiwenshare.file.api.IUserFileService;
import com.qiwenshare.file.component.AsyncTaskComp;
import com.qiwenshare.file.component.FileDealComp;
import com.qiwenshare.file.config.es.FileSearch;
import com.qiwenshare.file.domain.FileBean;
@ -55,6 +56,8 @@ public class FileController {
@Resource
FileDealComp fileDealComp;
@Resource
AsyncTaskComp asyncTaskComp;
@Autowired
private ElasticsearchClient elasticsearchClient;
@ -141,6 +144,7 @@ public class FileController {
BeanUtil.copyProperties(hit.source(), searchFileVO);
searchFileVO.setHighLight(hit.highlight());
searchFileVOList.add(searchFileVO);
asyncTaskComp.checkESUserFileId(searchFileVO.getUserFileId());
}
return RestResult.success().data(searchFileVOList);
}

View File

@ -32,13 +32,6 @@ public class TaskController {
@Scheduled(fixedRate = Long.MAX_VALUE)
public void updateElasticSearch() {
try {
elasticsearchClient.delete(d -> d.index("filesearch"));
} catch (Exception e) {
log.debug("删除ES失败:" + e);
}
List<UserFile> userfileList = userFileService.list();
for (UserFile userFile : userfileList) {
fileDealComp.uploadESByUserFileId(userFile.getUserFileId());