From d967103c17626f15de3357665cb8c6906f306a20 Mon Sep 17 00:00:00 2001
From: gengby <858962040@qq.com>
Date: Tue, 2 Jan 2024 17:21:53 +0800
Subject: [PATCH] =?UTF-8?q?rev:=E6=9B=BF=E6=8D=A2lucene?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
wcs/nladmin-system/lucene/write.lock | 0
wcs/nladmin-system/pom.xml | 5 +
.../HailiangEngravingInDeviceDriver.java | 2 +-
.../nl/acs/opc/DeviceOpcProtocolRunable.java | 27 ++-
.../main/java/org/nl/acs/opc/OpcItemDto.java | 8 +
.../lucene/common/DynamicLogAppender.java | 49 -----
.../modules/lucene/common/DynamicLogger.java | 35 ----
.../org/nl/modules/lucene/common/Indexer.java | 178 ------------------
.../lucene/common/LuceneIndexWriter.java | 66 -------
.../lucene/common/LuceneServiceAutoRun.java | 85 ---------
.../nl/modules/lucene/common/Searcher.java | 140 --------------
.../modules/lucene/config/StaticConfig.java | 21 ---
.../nl/modules/lucene/config/UrlConfig.java | 13 --
.../modules/lucene/rest/LuceneController.java | 5 -
.../service/LuceneExecuteLogService.java | 4 +-
.../modules/lucene/service/LuceneService.java | 5 -
.../lucene/service/dto/LuceneLogDto.java | 33 +---
.../impl/LuceneExecuteLogServiceImpl.java | 59 +-----
.../service/impl/LuceneServiceImpl.java | 150 ++++++++++-----
.../main/resources/config/application-dev.yml | 10 +-
.../resources/config/application-test.yml | 6 +-
.../src/main/resources/config/application.yml | 4 +
.../src/main/resources/log/AcsToLk.xml | 16 +-
.../src/main/resources/log/AcsToMes.xml | 16 +-
.../resources/log/AgvNdcOneDeviceDriver.xml | 16 +-
.../resources/log/AgvNdcTwoDeviceDriver.xml | 16 +-
.../src/main/resources/log/AutoCreateInst.xml | 16 +-
.../main/resources/log/AutoCreateOneInst.xml | 16 +-
.../src/main/resources/log/LkToAcs.xml | 16 +-
.../src/main/resources/log/Lucene.xml | 34 ----
.../src/main/resources/log/MesToAcs.xml | 16 +-
.../main/resources/log/NDCAgvServiceImpl.xml | 16 +-
.../log/NDCSocketConnectionAutoRun.xml | 16 +-
.../log/OneNDCSocketConnectionAutoRun.xml | 16 +-
.../src/main/resources/log/OpcUtil.xml | 16 +-
.../src/main/resources/logback-spring.xml | 131 ++-----------
.../src/views/monitor/lucene/index.vue | 5 +-
37 files changed, 274 insertions(+), 993 deletions(-)
create mode 100644 wcs/nladmin-system/lucene/write.lock
delete mode 100644 wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/DynamicLogAppender.java
delete mode 100644 wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/DynamicLogger.java
delete mode 100644 wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/Indexer.java
delete mode 100644 wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/LuceneIndexWriter.java
delete mode 100644 wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/LuceneServiceAutoRun.java
delete mode 100644 wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/Searcher.java
delete mode 100644 wcs/nladmin-system/src/main/java/org/nl/modules/lucene/config/StaticConfig.java
delete mode 100644 wcs/nladmin-system/src/main/java/org/nl/modules/lucene/config/UrlConfig.java
delete mode 100644 wcs/nladmin-system/src/main/resources/log/Lucene.xml
diff --git a/wcs/nladmin-system/lucene/write.lock b/wcs/nladmin-system/lucene/write.lock
new file mode 100644
index 00000000..e69de29b
diff --git a/wcs/nladmin-system/pom.xml b/wcs/nladmin-system/pom.xml
index ae175695..15202c60 100644
--- a/wcs/nladmin-system/pom.xml
+++ b/wcs/nladmin-system/pom.xml
@@ -423,6 +423,11 @@
+
+ com.yomahub
+ tlog-all-spring-boot-starter
+ 1.5.0
+
org.apache.lucene
lucene-core
diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_in/HailiangEngravingInDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_in/HailiangEngravingInDeviceDriver.java
index dd62b56c..1c285c9d 100644
--- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_in/HailiangEngravingInDeviceDriver.java
+++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_in/HailiangEngravingInDeviceDriver.java
@@ -261,7 +261,7 @@ public class HailiangEngravingInDeviceDriver extends AbstractOpcDeviceDriver imp
if (mode != last_mode) {
feedDeviceStatusFlag = false;
logServer.deviceExecuteLog(this.device_code, "", "", SignalEnum.getNameByCode("mode") + SignalEnum.getDescByCode("mode") +":"+ last_mode + "->" + mode);
- lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, ItemProtocol.item_mode, mode, last_mode));
+ //lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, ItemProtocol.item_mode, mode, last_mode));
}
if (gd_move != last_gd_move) {
logServer.deviceExecuteLog(this.device_code, "", "", SignalEnum.getNameByCode("move") + SignalEnum.getDescByCode("move") +":"+ last_gd_move + "->" + gd_move);
diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java b/wcs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java
index 92d8d2bf..f5476f9b 100644
--- a/wcs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java
+++ b/wcs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java
@@ -3,10 +3,12 @@ package org.nl.acs.opc;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.nl.acs.udw.UnifiedDataAccessor;
import org.nl.acs.udw.UnifiedDataAccessorFactory;
import org.nl.acs.udw.UnifiedDataAppService;
+import org.nl.modules.lucene.enums.LogTypeEnum;
import org.nl.modules.lucene.service.LuceneExecuteLogService;
import org.nl.modules.lucene.service.dto.LuceneLogDto;
import org.nl.modules.wql.util.SpringContextHolder;
@@ -358,6 +360,7 @@ public class DeviceOpcProtocolRunable implements Runnable, DataCallback, ServerC
}
+ @Override
public void connectionStateChanged(boolean connected) {
if (!connected) {
this.server = null;
@@ -380,6 +383,7 @@ public class DeviceOpcProtocolRunable implements Runnable, DataCallback, ServerC
}
+ @Override
public void changed(Item item, ItemState itemState) {
String itemId = item.getId();
@@ -410,8 +414,9 @@ public class DeviceOpcProtocolRunable implements Runnable, DataCallback, ServerC
}
private void logItemChanged(String itemId, UnifiedDataAccessor accessor_value, Object value, OpcItemDto itemDto) {
- LuceneExecuteLogService lucene = SpringContextHolder.getBean(LuceneExecuteLogService.class);
Object his = accessor_value.getValue(itemId);
+ itemDto.setHis_item_value(his);
+ itemDto.setItem_value(value);
List relate_items = itemDto.getRelate_items();
if (relate_items != null && !relate_items.isEmpty()) {
StringBuilder sb = new StringBuilder();
@@ -422,14 +427,22 @@ public class DeviceOpcProtocolRunable implements Runnable, DataCallback, ServerC
Object obj = accessor_value.getValue(relate);
sb.append("key:" + relate + "value:" + obj + ";");
}
-// log.warn("设备:{}信号{}变更从{}->{};信号快照:{}", new Object[]{itemDto.getDevice_code(), itemId, his, value, sb});
- if (!itemDto.getItem_code().endsWith("heartbeat")) {
- lucene.deviceExecuteLog(new LuceneLogDto(itemDto.getDevice_code(), itemDto.getItem_code().substring(itemDto.getItem_code().lastIndexOf(".")+1), String.valueOf(his), String.valueOf(value)));
+ if (!itemDto.getItem_code().endsWith("heartbeat") && !itemDto.getItem_code().endsWith("time")) {
+ // 存在上次点位值为null情况 则不记录日志
+ LuceneLogDto luceneLogDto = new LuceneLogDto(itemDto.getOpc_server_code(), itemDto.getOpc_plc_code(), itemDto.getDevice_code(), itemDto.getItem_code().substring(itemDto.getItem_code().lastIndexOf(".") + 1),
+ String.valueOf(itemDto.getHis_item_value()), String.valueOf(itemDto.getItem_value()));
+ luceneLogDto.setLogType(LogTypeEnum.DEVICE_LOG.getDesc());
+ log.info("{}", JSON.toJSONString(luceneLogDto));
}
} else {
-// log.warn("设备:{}信号{}变更从{}->{};信号快照:{}", new Object[]{itemDto.getDevice_code(), itemId, his, value});
- if (!itemDto.getItem_code().endsWith("heartbeat")) {
- lucene.deviceExecuteLog(new LuceneLogDto(itemDto.getDevice_code(), itemDto.getItem_code().substring(itemDto.getItem_code().lastIndexOf(".")+1), String.valueOf(his), String.valueOf(value)));
+// log.info("设备:{}信号{}变更从{}->{};信号快照:{}", new Object[]{itemDto.getDevice_code(), itemId, his, value});
+ // 存在上次点位值为null情况 则不记录日志
+ if (!itemDto.getItem_code().endsWith("heartbeat") && !itemDto.getItem_code().endsWith("time")) {
+ LuceneLogDto luceneLogDto = new LuceneLogDto(itemDto.getOpc_server_code(), itemDto.getOpc_plc_code(), itemDto.getDevice_code(), itemDto.getItem_code().substring(itemDto.getItem_code().lastIndexOf(".") + 1),
+ String.valueOf(itemDto.getHis_item_value()), String.valueOf(itemDto.getItem_value()));
+ luceneLogDto.setLogType(LogTypeEnum.DEVICE_LOG.getDesc());
+ log.info("{}", JSON.toJSONString(luceneLogDto));
+
}
}
}
diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/opc/OpcItemDto.java b/wcs/nladmin-system/src/main/java/org/nl/acs/opc/OpcItemDto.java
index 677d00f2..b0cedf83 100644
--- a/wcs/nladmin-system/src/main/java/org/nl/acs/opc/OpcItemDto.java
+++ b/wcs/nladmin-system/src/main/java/org/nl/acs/opc/OpcItemDto.java
@@ -11,6 +11,7 @@ public class OpcItemDto {
private String opc_plc_code;
private String item_code;
private Object item_value;
+ private Object his_item_value;
private Boolean need_log = Boolean.valueOf(false);
private List relate_items = new ArrayList();
@@ -86,4 +87,11 @@ public class OpcItemDto {
this.relate_items = relate_items;
}
+ public Object getHis_item_value() {
+ return his_item_value;
+ }
+
+ public void setHis_item_value(Object his_item_value) {
+ this.his_item_value = his_item_value;
+ }
}
diff --git a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/DynamicLogAppender.java b/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/DynamicLogAppender.java
deleted file mode 100644
index 951a593a..00000000
--- a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/DynamicLogAppender.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.nl.modules.lucene.common;
-
-import ch.qos.logback.classic.LoggerContext;
-import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
-import ch.qos.logback.core.rolling.RollingFileAppender;
-import ch.qos.logback.core.rolling.TimeBasedRollingPolicy;
-import cn.hutool.core.date.DateTime;
-import cn.hutool.core.date.DateUtil;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.nio.charset.Charset;
-
-public class DynamicLogAppender {
- /**
- * 通过传入的动态名字,动态设置appender
- * @param dynamicName
- * @return
- */
- public RollingFileAppender getAppender(String oldLogPath,String dynamicName) {
- LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
- RollingFileAppender appender = new RollingFileAppender();
- //appender的name属性
- appender.setName(dynamicName);
- appender.setContext(context);
-
- //设置文件名
- appender.setFile(new File(oldLogPath, dynamicName + "\\" + DateUtil.format(new DateTime(),"yyyy-MM-dd")+".log").getAbsolutePath());
- //设置日志文件输出格式
- PatternLayoutEncoder encoder = new PatternLayoutEncoder();
- encoder.setContext(context);
- encoder.setPattern("%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n");
- encoder.setCharset(Charset.forName("UTF-8"));
- encoder.start();
-
- //设置日志记录器的滚动策略
- TimeBasedRollingPolicy policy = new TimeBasedRollingPolicy();
- policy.setFileNamePattern(oldLogPath+dynamicName+".%d{yyyy-MM-dd}.log");
- policy.setParent(appender); //设置父节点是appender
- policy.setContext(context);
- policy.start();
-
- //加入下面两个节点
- appender.setRollingPolicy(policy);
- appender.setEncoder(encoder);
- appender.start();
- return appender;
- }
-}
diff --git a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/DynamicLogger.java b/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/DynamicLogger.java
deleted file mode 100644
index e43860b1..00000000
--- a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/DynamicLogger.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.nl.modules.lucene.common;
-
-import ch.qos.logback.classic.Logger;
-import ch.qos.logback.classic.LoggerContext;
-import ch.qos.logback.core.rolling.RollingFileAppender;
-import org.slf4j.LoggerFactory;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class DynamicLogger {
- String logPath;//日志存储路径
- public DynamicLogger(String logPath) {
- this.logPath = logPath;
- }
- //对外暴露日志对象:每次拿的对象从内存里拿,没有再构建
- private static Map container = new HashMap<>();
- public Logger getLogger(String dynamicName) {
- Logger logger = container.get(dynamicName);
- if(logger != null) {
- return logger;
- }
- logger = build(dynamicName);
- container.put(dynamicName,logger);
- return logger;
- }
- //构建Logger对象,给Logger指定appender
- private Logger build(String dynamicName) {
- RollingFileAppender runTaskAppender =new DynamicLogAppender().getAppender(this.logPath,dynamicName);
- LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
- Logger logger = context.getLogger(dynamicName);
- logger.addAppender(runTaskAppender);
- return logger;
- }
-}
diff --git a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/Indexer.java b/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/Indexer.java
deleted file mode 100644
index a9c677cd..00000000
--- a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/Indexer.java
+++ /dev/null
@@ -1,178 +0,0 @@
-package org.nl.modules.lucene.common;
-
-import com.alibaba.fastjson.JSONObject;
-import org.apache.commons.io.FileUtils;
-import org.apache.lucene.analysis.Analyzer;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.FSDirectory;
-import org.springframework.beans.factory.annotation.Value;
-import org.wltea.analyzer.lucene.IKAnalyzer;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.nio.file.Paths;
-import java.util.Set;
-
-/**
- * lucene索引器
- */
-public class Indexer {
- /**
- * 写索引实例
- */
- private IndexWriter writer;
-
- public IndexWriter getWriter() {
- return writer;
- }
-
- /**
- * 构造方法,实例化IndexWriter
- * @param indexDir
- * @throws Exception
- */
- public Indexer(String indexDir) throws Exception {
- Directory dir = FSDirectory.open(Paths.get(indexDir));
- //标准分词器,会自动去掉空格啊,is a the等单词
-// Analyzer analyzer = new StandardAnalyzer();
- Analyzer analyzer = new IKAnalyzer();
- //将标准分词器配到写索引的配置中
- IndexWriterConfig config = new IndexWriterConfig(analyzer);
- //实例化写索引对象
- writer = new IndexWriter(dir, config);
- }
-
- /**
- * 索引指定目录下的所有文件
- * @param dataDir
- * @return
- * @throws Exception
- */
- public int indexAll(String dataDir) throws Exception {
- // 获取该路径下的所有文件
- File[] files = new File(dataDir).listFiles();
- if (null != files) {
- for (File file : files) {
- //调用下面的indexFile方法,对每个文件进行索引
- indexFile(file);
- }
- }
- //返回索引的文件数
-// return writer.numDocs();
- return writer.numRamDocs();
- }
-
- /**
- * 索引指定的文件
- * @param file
- * @throws Exception
- */
- private void indexFile(File file) throws Exception {
- System.out.println("索引文件的路径:" + file.getCanonicalPath());
- //调用下面的getDocument方法,获取该文件的document
- Document doc = getDocument(file);
- //添加索引文档
- //Document doc = json2Doc(jsonDoc);
-// Document doc = new Document();
-// doc.add(new TextField("content", jsonDoc, Field.Store.YES));
- Field fieldContent=new TextField("fieldContent", FileUtils.readFileToString(null,"UTF-8"), Field.Store.YES);
-
- //将doc添加到索引中
- writer.addDocument(doc);
- }
-
- /**
- * 获取文档,文档里再设置每个字段,就类似于数据库中的一行记录
- * @param file
- * @return
- * @throws Exception
- */
- private Document getDocument(File file) throws Exception {
- Document doc = new Document();
- //开始添加字段
- //添加内容
- doc.add(new TextField("contents", new FileReader(file)));
- //添加文件名,并把这个字段存到索引文件里
- doc.add(new TextField("fileName", file.getName(), Field.Store.YES));
- //添加文件路径
- doc.add(new TextField("fullPath", file.getCanonicalPath(), Field.Store.YES));
- return doc;
- }
- public Document json2Doc(String strDoc) {
- Document doc = new Document();
- JSONObject jsonDoc = JSONObject.parseObject(strDoc);
- Set keys = jsonDoc.keySet();
- for (String key : keys) {
- doc.add(new TextField(key, jsonDoc.getString(key), Field.Store.YES));
- }
- return doc;
- }
-
- public void addLogIndex(String msg) throws IOException {
- //步骤一:创建Directory对象,用于指定索引库的位置 RAMDirectory内存
- Directory directory = FSDirectory.open(new File("D:\\lucene\\index").toPath());
- //步骤二:创建一个IndexWriter对象,用于写索引
-// Analyzer analyzer = new StandardAnalyzer();
- IndexWriter indexWriter=new IndexWriter(directory,new IndexWriterConfig(new IKAnalyzer(false)));
-// indexWriter.deleteAll();//清理所有索引库
-// IndexWriter indexWriter=new IndexWriter(directory,new IndexWriterConfig(new StandardAnalyzer()));
- //记录索引开始时间
- long startTime = System.currentTimeMillis();
- //步骤三:读取磁盘中文件,对应每一个文件创建一个文档对象
- Document document = new Document();
-// document.add(new TextField("fieldContent", device_id, Field.Store.YES));
- document.add(new TextField("fieldContent", msg, Field.Store.YES));
- indexWriter.addDocument(document);
- //记录索引结束时间
- long endTime = System.currentTimeMillis();
- System.out.println("建立索引"+ "共耗时" + (endTime-startTime) + "毫秒");
- indexWriter.commit();
- //步骤八:关闭资源
- indexWriter.close();
- System.out.println("建立索引成功-----关闭资源");
- }
- //系统的日志文件路径
- @Value("${logging.file.path}")
- private String logUrl;
-
- public static void main(String[] args)throws IOException {
- //步骤一:创建Directory对象,用于指定索引库的位置 RAMDirectory内存
- Directory directory = FSDirectory.open(new File("D:\\lucene\\index").toPath());
- //步骤二:创建一个IndexWriter对象,用于写索引
-// Analyzer analyzer = new StandardAnalyzer();
- IndexWriter indexWriter=new IndexWriter(directory,new IndexWriterConfig(new IKAnalyzer(false)));
-
- indexWriter.deleteAll();//清理所有索引库
-// IndexWriter indexWriter=new IndexWriter(directory,new IndexWriterConfig(new StandardAnalyzer()));
- //记录索引开始时间
- long startTime = System.currentTimeMillis();
- //步骤三:读取磁盘中文件,对应每一个文件创建一个文档对象
- File file=new File("D:\\testlog");
- //步骤四:获取文件列表
- File[] files = file.listFiles();
- for (File item:files) {
- BufferedReader bufferedReader = new BufferedReader(new FileReader(item));
- String strLine = null;
- while(null != (strLine = bufferedReader.readLine())){
- Document document = new Document();
-// document.add(new Field());
- document.add(new TextField("fieldContent", strLine, Field.Store.YES));
- indexWriter.addDocument(document);
- }
- }
- //记录索引结束时间
- long endTime = System.currentTimeMillis();
- System.out.println("建立索引"+ "共耗时" + (endTime-startTime) + "毫秒");
- indexWriter.commit();
- //步骤八:关闭资源
- indexWriter.close();
- System.out.println("建立索引成功-----关闭资源");
- }
-}
diff --git a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/LuceneIndexWriter.java b/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/LuceneIndexWriter.java
deleted file mode 100644
index fb9451d2..00000000
--- a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/LuceneIndexWriter.java
+++ /dev/null
@@ -1,66 +0,0 @@
-//package org.nl.modules.lucene.common;
-//
-//import cn.hutool.core.date.DateUtil;
-//import org.apache.lucene.index.CorruptIndexException;
-//import org.apache.lucene.index.IndexWriter;
-//import org.apache.lucene.index.IndexWriterConfig;
-//import org.apache.lucene.store.Directory;
-//import org.apache.lucene.store.FSDirectory;
-//import org.nl.modules.lucene.config.UrlConfig;
-//import org.wltea.analyzer.lucene.IKAnalyzer;
-//
-//import java.io.File;
-//import java.io.IOException;
-//import java.text.ParseException;
-//import java.text.SimpleDateFormat;
-//import java.util.Date;
-//
-//public class LuceneIndexWriter {
-// private static volatile IndexWriter indexWriter;
-//
-// static {
-// try {
-// Directory directory = FSDirectory.open(new File(UrlConfig.luceneUrl).toPath());
-// IndexWriterConfig config = new IndexWriterConfig(new IKAnalyzer());
-// indexWriter = new IndexWriter(directory, config);
-// } catch (Exception e) {
-// e.printStackTrace();
-// }
-// /**当当前线程结束时,自动关闭IndexWriter,使用Runtime对象*/
-//// Runtime.getRuntime().addShutdownHook(new Thread(){
-//// @Override
-//// public void run() {
-//// try {
-//// closeIndexWriter();
-//// } catch (Exception e) {
-//// e.printStackTrace();
-//// }
-//// }
-//// });
-// }
-// /**在线程结束时,自动关闭IndexWriter*/
-// public static IndexWriter getIndexWriter() {
-// return indexWriter;
-// }
-// /**关闭IndexWriter
-// * @throws IOException
-// * @throws CorruptIndexException */
-// public static void closeIndexWriter() throws Exception {
-// if(indexWriter != null) {
-//// indexWriter.close();
-// }
-// }
-//
-// public static void main(String[] args) throws IOException {
-// indexWriter.deleteAll();
-// }
-//
-// public static String getDate(String timeString) throws ParseException {
-// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");//时间格式
-// Date date = sdf.parse(timeString);
-// timeString = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss.SSS");//格式化后的时间
-// return timeString;
-// }
-//
-//
-//}
diff --git a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/LuceneServiceAutoRun.java b/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/LuceneServiceAutoRun.java
deleted file mode 100644
index 8a0a7827..00000000
--- a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/LuceneServiceAutoRun.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package org.nl.modules.lucene.common;
-
-import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.util.ObjectUtil;
-import com.alibaba.fastjson.JSON;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.FSDirectory;
-import org.nl.acs.AcsConfig;
-import org.nl.acs.auto.run.AbstractAutoRunnable;
-import org.nl.modules.system.service.ParamService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.wltea.analyzer.lucene.IKAnalyzer;
-import java.io.File;
-import java.io.IOException;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-
-@Slf4j
-@Component
-public class LuceneServiceAutoRun extends AbstractAutoRunnable {
- @Autowired
- private ParamService paramService;
-
- public LuceneServiceAutoRun() {
- }
-
- @Override
- public String getCode() {
- return LuceneServiceAutoRun.class.getSimpleName();
- }
-
- @Override
- public String getName() {
- return "Lucene索引服务";
- }
-
- private static volatile IndexWriter indexWriter;
-
- @Override
- public void autoRun() throws IOException {
- try {
- String luceneUrl = paramService.findByCode(AcsConfig.LUCENEURL).getValue();
- Directory directory = FSDirectory.open(new File(luceneUrl).toPath());
- IndexWriterConfig config = new IndexWriterConfig(new IKAnalyzer());
- indexWriter = new IndexWriter(directory, config);
- } catch (Exception e) {
- log.error("Lucene索引服务出现异常:{}", JSON.toJSONString(e));
- if (ObjectUtil.isNotEmpty(indexWriter)) {
- indexWriter.close();
- }
- }
- }
- /**在线程结束时,会自动关闭IndexWriter*/
- public static IndexWriter getIndexWriter() {
- return indexWriter;
- }
-
- @Override
- public void stop() {
- super.after();
- try {
- indexWriter.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- public static void main(String[] args) throws IOException {
- indexWriter.deleteAll();
- }
-
- public static String getDate(String timeString) throws ParseException {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");//时间格式
- Date date = sdf.parse(timeString);
- timeString = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss.SSS");//格式化后的时间
- return timeString;
- }
-
-}
diff --git a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/Searcher.java b/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/Searcher.java
deleted file mode 100644
index 37773672..00000000
--- a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/Searcher.java
+++ /dev/null
@@ -1,140 +0,0 @@
-package org.nl.modules.lucene.common;
-
-import cn.hutool.core.date.DateTime;
-import cn.hutool.core.date.DateUtil;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import lombok.extern.slf4j.Slf4j;
-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.search.*;
-import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.FSDirectory;
-import org.apache.lucene.util.BytesRef;
-
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.List;
-import java.util.Map;
-
-/**
- * lucene查询器
- */
-@Slf4j
-public class Searcher {
-
- public static Map search(String indexDir, String ext,Map whereJson) throws Exception {
- //获取要查询的路径,也就是索引所在的位置
- Directory dir = FSDirectory.open(Paths.get(indexDir));
- IndexReader reader = DirectoryReader.open(dir);
- //构建IndexSearcher
- IndexSearcher searcher = new IndexSearcher(reader);
- //标准分词器,会自动去掉空格啊,is a the等单词
-// Analyzer analyzer = new StandardAnalyzer();
-// Analyzer analyzer = new IKAnalyzer(false);
- //查询解析器
-// QueryParser queryParser = new QueryParser("fieldContent", analyzer);
-
- //记录索引开始时间
- long startTime = System.currentTimeMillis();
- // 实际上Lucene本身不支持分页。因此我们需要自己进行逻辑分页。我们要准备分页参数:
- int pageSize = Integer.parseInt(whereJson.get("size").toString());// 每页条数
- int pageNum = Integer.parseInt(whereJson.get("page").toString());// 当前页码
- int start = pageNum * pageSize;// 当前页的起始条数
- int end = start + pageSize;// 当前页的结束条数(不能包含)
- TopDocs docs = null;
- BooleanQuery.Builder booleanQueryBuilder = new BooleanQuery.Builder();
- //时间范围查询
- String startDate = (String) whereJson.get("begin_time");
- String endDate = (String) whereJson.get("end_time");
- Calendar calendar=Calendar.getInstance();
- calendar.set(1970, 0, 1);
- if (startDate == null){
- startDate = DateUtil.format(calendar.getTime(),"yyyy-MM-dd HH:mm:ss.SSS");
- }else{
- startDate = LuceneServiceAutoRun.getDate(startDate);
- }
- if (endDate == null){
- endDate = DateUtil.format(new DateTime(),"yyyy-MM-dd HH:mm:ss.SSS");
- } else {
- endDate = LuceneServiceAutoRun.getDate(endDate);
- }
- TermRangeQuery termRangeQuery = new TermRangeQuery("logTime", new BytesRef(startDate), new BytesRef(endDate), true, true);
- booleanQueryBuilder.add(termRangeQuery,BooleanClause.Occur.MUST);
- if (whereJson.get("device_code") != null){
- Query termQuery = new TermQuery(new Term("device_code", (String) whereJson.get("device_code")));
- booleanQueryBuilder.add(termQuery,BooleanClause.Occur.MUST);
- }
- if (whereJson.get("method") != null){
- Query termQuery = new TermQuery(new Term("method", (String) whereJson.get("method")));
- booleanQueryBuilder.add(termQuery,BooleanClause.Occur.MUST);
- }
- if (whereJson.get("status_code") != null){
- Query termQuery = new TermQuery(new Term("status_code", (String) whereJson.get("status_code")));
- booleanQueryBuilder.add(termQuery,BooleanClause.Occur.MUST);
- }
- if (whereJson.get("requestparam") != null){
- WildcardQuery query = new WildcardQuery(new Term("requestparam", "*"+(String) whereJson.get("requestparam")+"*"));
- booleanQueryBuilder.add(query,BooleanClause.Occur.MUST);
- }
- if (whereJson.get("responseparam") != null){
- WildcardQuery query = new WildcardQuery(new Term("responseparam", "*"+(String) whereJson.get("responseparam")+"*"));
- booleanQueryBuilder.add(query,BooleanClause.Occur.MUST);
- }
- if (whereJson.get("blurry") != null) {
- WildcardQuery query = new WildcardQuery(new Term("fieldContent", "*"+(String) whereJson.get("blurry")+"*"));
- booleanQueryBuilder.add(query, BooleanClause.Occur.MUST);
- }
- // 创建排序对象,需要排序字段SortField,参数:字段的名称、字段的类型、是否反转如果是false,升序。true降序
- Sort sort = new Sort(new SortField("logTime",SortField.Type.LONG,true));
- docs = searcher.search(booleanQueryBuilder.build(), end, sort);
-// docs = searcher.search(booleanQueryBuilder.build(), end, Sort.INDEXORDER);
- //记录索引时间
- long endTime = System.currentTimeMillis();
- log.info("匹配{}共耗时{}毫秒",booleanQueryBuilder.build(),(endTime-startTime));
- log.info("查询到{}条日志文件", docs.totalHits.value);
- List list = new ArrayList<>();
- ScoreDoc[] scoreDocs = docs.scoreDocs;
- if (end > docs.totalHits.value) end = (int) docs.totalHits.value;
- JSONArray array = new JSONArray();
-
- for (int i = start; i < end; i++) {
- ScoreDoc scoreDoc = scoreDocs[i];
- Document doc = reader.document(scoreDoc.doc);
- JSONObject object = new JSONObject();
- object.put("content",doc.get("fieldContent"));
- object.put("device_code",doc.get("device_code"));
- object.put("logTime",doc.get("logTime"));
- object.put("method",doc.get("method"));
- object.put("status_code",doc.get("status_code"));
- object.put("requestparam",doc.get("requestparam"));
- object.put("responseparam",doc.get("responseparam"));
- if(doc.get("fieldContent") != null) {
- array.add(object);
- }
- }
- for(Object logDto:array){
- log.info(logDto.toString());
- }
- reader.close();
- JSONObject jo = new JSONObject();
- jo.put("content", array);
- jo.put("totalElements", docs.totalHits.value);
- return jo;
- }
-
- public static void main(String[] args) {
- String indexDir = "D:\\lucene\\index";
- //查询这个字符串
- String q = "07.832";
- Map whereJson = null;
- try {
- search(indexDir, q,whereJson);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-}
diff --git a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/config/StaticConfig.java b/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/config/StaticConfig.java
deleted file mode 100644
index d0538597..00000000
--- a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/config/StaticConfig.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.nl.modules.lucene.config;
-
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-/**
- * @deprecated 设置静态参数初始化
- */
-@Configuration
-public class StaticConfig {
- //日志索引目录
- @Value("${lucene.index.path}")
- private String luceneDir;
-
- @Bean
- public int initStatic() {
- UrlConfig.setLuceneUrl(luceneDir);
- return 0;
- }
-}
diff --git a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/config/UrlConfig.java b/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/config/UrlConfig.java
deleted file mode 100644
index d48ca3c9..00000000
--- a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/config/UrlConfig.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.nl.modules.lucene.config;
-
-public class UrlConfig {
- public static String luceneUrl;
-
- public static String getLuceneUrl() {
- return luceneUrl;
- }
-
- public static void setLuceneUrl(String luceneUrl) {
- UrlConfig.luceneUrl = luceneUrl;
- }
-}
diff --git a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/rest/LuceneController.java b/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/rest/LuceneController.java
index 6d351c3d..c32761d7 100644
--- a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/rest/LuceneController.java
+++ b/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/rest/LuceneController.java
@@ -26,11 +26,6 @@ public class LuceneController {
private final LuceneService luceneService;
- @GetMapping("/labels/values")
- @ApiOperation("获取标签")
- public ResponseEntity