From 0cf10e61183fd90d9421700e703ff3d0b98b6a62 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Thu, 26 Oct 2023 11:13:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=9A=E6=97=B6=E6=B8=85=E9=99=A4luc?= =?UTF-8?q?ene=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/config/lucene/LuceneAppender.java | 2 +- .../java/org/nl/config/lucene/Searcher.java | 73 +++++++++++++------ .../quartz/task/AutoClearLuceneData.java | 45 ++++++++++++ .../src/views/wms/pdm/workerorder/index.vue | 11 ++- 4 files changed, 105 insertions(+), 26 deletions(-) create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/AutoClearLuceneData.java diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneAppender.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneAppender.java index 9a0259a..0909ac0 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneAppender.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneAppender.java @@ -25,7 +25,7 @@ import java.util.Map; public class LuceneAppender extends AppenderBase { private Directory index; - private IndexWriter indexWriter; + public static IndexWriter indexWriter; @Override diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Searcher.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Searcher.java index fecdf48..086f4e1 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Searcher.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Searcher.java @@ -7,9 +7,8 @@ import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.document.Document; -import org.apache.lucene.index.DirectoryReader; -import org.apache.lucene.index.IndexReader; -import org.apache.lucene.index.Term; +import org.apache.lucene.document.LongPoint; +import org.apache.lucene.index.*; import org.apache.lucene.queryparser.classic.QueryParser; import org.apache.lucene.search.*; import org.apache.lucene.store.Directory; @@ -17,11 +16,14 @@ import org.apache.lucene.store.FSDirectory; import org.apache.lucene.util.BytesRef; import org.wltea.analyzer.lucene.IKAnalyzer; +import java.io.IOException; import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; -import java.util.Map; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.temporal.ChronoUnit; +import java.util.*; /** * lucene查询器 @@ -138,19 +140,48 @@ public class Searcher { } } - public static void main(String[] args) { - String indexDir = "D:\\lucene\\index"; - //查询这个字符串 - JSONObject whereJson = new JSONObject(); - whereJson.put("size", "500"); - whereJson.put("page", "1"); - whereJson.put("message", "请求方法参数"); -// whereJson.put(LogMessageConstant.FIELD_TRACEID, "13244183367577216"); - - try { - search(indexDir, whereJson); - } catch (Exception e) { - e.printStackTrace(); - } + public static void main(String[] args) throws IOException, ParseException { +// String indexDir = "D:\\lucene\\index"; +// //查询这个字符串 +// JSONObject whereJson = new JSONObject(); +// whereJson.put("size", "500"); +// whereJson.put("page", "1"); +// whereJson.put("message", "请求方法参数"); +//// whereJson.put(LogMessageConstant.FIELD_TRACEID, "13244183367577216"); +// +// try { +// search(indexDir, whereJson); +// } catch (Exception e) { +// e.printStackTrace(); +// } + // 删除 +// Directory directory = FSDirectory.open(Paths.get("D:\\lucene\\index")); +// IndexWriterConfig config = new IndexWriterConfig(); +// IndexWriter writer = new IndexWriter(directory, config); +// +// String timestampAsString = "2023-10-25 14:36:12"; +// SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); +// Date date = dateFormat.parse(timestampAsString); +// long unixTimestamp = date.getTime(); // 获取Unix时间戳 +// +// Query query = LongPoint.newRangeQuery("time", 0L, unixTimestamp); +// writer.deleteDocuments(query); +// +// writer.commit(); +// writer.close(); + // 获取当前时间 + LocalDateTime now = LocalDateTime.now(); + // 减去七天 + LocalDateTime sevenDaysAgo = now.minus(7, ChronoUnit.DAYS); + // 转换为 Date 类型 + Date sevenDaysAgoDate = Date.from(sevenDaysAgo.atZone(ZoneId.systemDefault()).toInstant()); + // 获取时间戳 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS"); + Date date = dateFormat.parse(String.valueOf(sevenDaysAgo)); + long timestamp = date.getTime(); + System.out.println(now); + System.out.println(sevenDaysAgo); + System.out.println(sevenDaysAgoDate); + System.out.println(timestamp); } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/AutoClearLuceneData.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/AutoClearLuceneData.java new file mode 100644 index 0000000..65ce2b2 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/AutoClearLuceneData.java @@ -0,0 +1,45 @@ +package org.nl.system.service.quartz.task; + +import lombok.extern.slf4j.Slf4j; +import org.apache.lucene.document.LongPoint; +import org.apache.lucene.index.IndexWriter; +import org.apache.lucene.search.Query; +import org.nl.config.lucene.LuceneAppender; +import org.nl.system.service.param.ISysParamService; +import org.nl.system.service.param.dao.Param; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.io.IOException; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; +import java.util.Date; + +/** + * @Author: lyd + * @Description: 自动删除lucene日志 + * @Date: 2023/10/26 + */ +@Slf4j +@Component +public class AutoClearLuceneData { + @Autowired + private ISysParamService paramService; + public void run() throws ParseException, IOException { + Param log_day = paramService.findByCode("log_day"); + IndexWriter writer = LuceneAppender.indexWriter; + // 获取当前时间 + LocalDateTime now = LocalDateTime.now(); + // 减去七天 + LocalDateTime sevenDaysAgo = now.minus(Long.parseLong(log_day.getValue()), ChronoUnit.DAYS); + // 获取时间戳 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS"); + Date date = dateFormat.parse(String.valueOf(sevenDaysAgo)); + long unixTimestamp = date.getTime(); // 获取Unix时间戳 + Query query = LongPoint.newRangeQuery("time", 0L, unixTimestamp); + writer.deleteDocuments(query); + writer.commit(); + } +} diff --git a/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue b/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue index 63ad1ab..3e1f816 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue @@ -1,5 +1,5 @@