diff --git a/nladmin-system/nlsso-server/pom.xml b/nladmin-system/nlsso-server/pom.xml index 599d93a..c215494 100644 --- a/nladmin-system/nlsso-server/pom.xml +++ b/nladmin-system/nlsso-server/pom.xml @@ -19,74 +19,155 @@ 1.8 1.16 2.9.2 - 1.2.70 1.1.22 - 2.5.0 - 1.3.1.Final + 1.2.0.Final 1.31.0 5.7.14 0.11.1 - - 5.9.0 8.2.0 + + + 1.9 - + + + org.jetbrains + annotations + 13.0 + + + org.codehaus.groovy + groovy-all + 3.0.13 + pom + - + - cn.hutool - hutool-all - ${hutool.version} + org.apache.lucene + lucene-core + ${lucene.version} + + + org.apache.lucene + lucene-highlighter + ${lucene.version} + + + org.apache.lucene + lucene-analyzers-common + ${lucene.version} + + + com.github.magese + ik-analyzer + ${lucene.version} + + + org.apache.lucene + lucene-analyzers-smartcn + ${lucene.version} + + - org.springframework - spring-jdbc - 5.2.9.RELEASE + org.apache.lucene + lucene-queryparser + ${lucene.version} - + + - org.springframework.boot - spring-boot-starter-web + com.yomahub + tlog-all-spring-boot-starter + 1.5.0 + + + + + com.github.oshi + oshi-core + 5.3.6 - + net.java.dev.jna + jna + 5.6.0 + + + + + + + + + + + + + com.internetitem + logback-elasticsearch-appender + 1.6 + - org.reflections - reflections - 0.9.10 + org.fusesource.jansi + jansi + 1.9 + - com.baomidou - mybatis-plus-boot-starter - 3.4.0 + cn.hutool + hutool-all + ${hutool.version} + - org.apache.velocity - velocity-engine-core - 2.3 + org.springframework.boot + spring-boot-starter-data-jpa - com.baomidou - mybatis-plus-generator - 3.4.0 + com.github.pagehelper + pagehelper-spring-boot-starter + 1.2.12 + + + org.mybatis + mybatis + + - - - - - + + + org.springframework.boot + spring-boot-starter-web + + + + + org.springframework.boot + spring-boot-starter-test + test + + cn.dev33 @@ -104,19 +185,6 @@ sa-token-jwt ${sa-token.version} - - cn.dev33 - sa-token-dao-redis - 1.31.0 - - - - - cn.dev33 - sa-token-alone-redis - 1.33.0 - - @@ -124,18 +192,6 @@ spring-boot-starter-cache - - - org.springframework.boot - spring-boot-starter-data-redis - - - - - org.apache.commons - commons-pool2 - ${commons-pool2.version} - org.apache.commons commons-lang3 @@ -193,44 +249,31 @@ druid-spring-boot-starter ${druid.version} - - net.dreamlu - mica-ip2region - 2.5.6 - - - - org.lionsoul - ip2region - 1.7.2 - org.projectlombok lombok true - - - com.alibaba - easyexcel - 2.1.6 + cn.dev33 + sa-token-dao-redis + 1.31.0 - org.apache.poi - poi-ooxml-schemas - 3.17 + com.baomidou + mybatis-plus-boot-starter + 3.4.0 - org.apache.poi - poi - 3.17 + org.apache.velocity + velocity-engine-core + 2.3 - org.apache.poi - poi-ooxml - 3.17 + com.baomidou + mybatis-plus-generator + 3.4.0 xerces @@ -238,12 +281,6 @@ 2.12.0 - - - com.alibaba - fastjson - ${fastjson.version} - @@ -296,24 +333,12 @@ 1.8.0 - - org.aspectj - aspectjweaver - 1.9.2 - - org.springframework.boot spring-boot-starter-aop - - - com.google.guava - guava - 29.0-jre - org.springframework.boot @@ -347,13 +372,12 @@ org.springframework.boot spring-boot-starter-websocket - - - io.jsonwebtoken - jjwt-api - ${jjwt.version} + org.redisson + redisson-spring-boot-starter + 3.16.4 + io.jsonwebtoken jjwt-impl @@ -383,27 +407,21 @@ 0.1.55 - - - com.github.oshi - oshi-core - 5.0.1 - - + - org.apache.httpcomponents - httpclient - 4.5.13 + com.alibaba + easyexcel + 2.2.6 - jakarta.transaction - jakarta.transaction-api - 1.3.3 + mysql + mysql-connector-java + 8.0.20 - jakarta.persistence - jakarta.persistence-api - 2.2.3 + org.json + json + 20131018 @@ -412,78 +430,35 @@ 2.8.0 - - - org.apache.lucene - lucene-core - ${lucene.version} - - - org.apache.lucene - lucene-highlighter - ${lucene.version} - - - org.apache.lucene - lucene-analyzers-common - ${lucene.version} - - - com.github.magese - ik-analyzer - ${lucene.version} - - - - - org.apache.lucene - lucene-analyzers-smartcn - ${lucene.version} - - - - org.apache.lucene - lucene-queryparser - ${lucene.version} - - - - - - - - nexus - - nexus - http://121.40.234.130:8081/repository/maven-releases/ - - - - - + ${project.artifactId} org.springframework.boot spring-boot-maven-plugin - + 2.2.10.RELEASE org.nl.AppRun + true + + + + + repackage + + + - org.apache.maven.plugins - maven-surefire-plugin + maven-war-plugin + 3.2.2 - true + false + ${project.artifactId} @@ -495,8 +470,10 @@ **/*.* + + **/*.java + - ${basedir}/src/main/resources @@ -504,6 +481,6 @@ - + diff --git a/nladmin-system/nlsso-server/src/main/java/org/Test.java b/nladmin-system/nlsso-server/src/main/java/org/Test.java new file mode 100644 index 0000000..f47181d --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/Test.java @@ -0,0 +1,128 @@ +package org; + +import org.apache.commons.io.FileUtils; +import org.apache.lucene.analysis.Analyzer; +import org.apache.lucene.document.*; +import org.apache.lucene.index.DirectoryReader; +import org.apache.lucene.index.IndexReader; +import org.apache.lucene.index.IndexWriter; +import org.apache.lucene.index.IndexWriterConfig; +import org.apache.lucene.queryparser.classic.QueryParser; +import org.apache.lucene.search.IndexSearcher; +import org.apache.lucene.search.Query; +import org.apache.lucene.search.ScoreDoc; +import org.apache.lucene.search.TopDocs; +import org.apache.lucene.store.Directory; +import org.apache.lucene.store.FSDirectory; +import org.wltea.analyzer.lucene.IKAnalyzer; + +import java.io.File; +import java.io.IOException; + +/** + * @author ldjun + * @version 1.0 + * @date 2023年05月12日 10:16 + * @desc desc + */ +public class Test { + public static void main(String[] args) throws Exception { + createIndex(); + searchIndex(); + } + + private static void createIndex() throws IOException { + //1、创建一个Director对象,指定索引库保存的位置。 + //把索引库保存在内存中 + //Directory directory = new RAMDirectory(); + //把索引库保存在磁盘 + Directory directory = FSDirectory.open(new File("E:\\lucene3").toPath()); + //2、基于Directory对象创建一个IndexWriter对象 + IndexWriterConfig config = new IndexWriterConfig(new IKAnalyzer()); + IndexWriter indexWriter = new IndexWriter(directory, config); + + //3、读取磁盘上的文件,对应每个文件创建一个文档对象。 + File dir = new File("E:\\lucene2"); + + + File[] files = dir.listFiles(); + for (File f : files) { + //取文件名 + String fileName = f.getName(); + //文件的路径 + String filePath = f.getPath(); + //文件的内容 + String fileContent = FileUtils.readFileToString(f, "utf-8"); + //文件的大小 + long fileSize = FileUtils.sizeOf(f); + //创建Field + //参数1:域的名称,参数2:域的内容,参数3:是否存储 + Field fieldName = new TextField("name", fileName, Field.Store.YES); + Field fieldPath = new StoredField("path", filePath); + Field fieldContent = new TextField("content", fileContent, Field.Store.YES); + Field fieldSizeValue = new LongPoint("size", fileSize); + Field fieldSizeStore = new StoredField("size", fileSize); + //创建文档对象 + Document document = new Document(); + //向文档对象中添加域 + document.add(fieldName); + document.add(fieldPath); + document.add(fieldContent); + //document.add(fieldSize); + document.add(fieldSizeValue); + document.add(fieldSizeStore); + //5、把文档对象写入索引库 + indexWriter.addDocument(document); + } + //6、关闭indexwriter对象 + indexWriter.close(); + } + + public static void searchIndex() throws Exception { + //1、创建一个Director对象,指定索引库的位置 + Directory directory = FSDirectory.open(new File("E:\\lucene3").toPath()); + //2、创建一个IndexReader对象 + IndexReader indexReader = DirectoryReader.open(directory); + //3、创建一个IndexSearcher对象,构造方法中的参数indexReader对象。 + IndexSearcher indexSearcher = new IndexSearcher(indexReader); + //4、创建一个Query对象,TermQuery +// Query query = new TermQuery(new Term("name", "123")); + //5、执行查询,得到一个TopDocs对象 + //参数1:查询对象 参数2:查询结果返回的最大记录数 +// TopDocs topDocs = indexSearcher.search(query, 10); + + + // 使用的分词器 + Analyzer analyzer = new IKAnalyzer(true); + // 要搜索的字段 + String filedName = "content"; + // 查询生成器(解析输入生成Query查询对象) + QueryParser parser = new QueryParser(filedName, analyzer); + // 通过parse解析输入(分词),生成query对象 + Query query = parser.parse("2023-04-14"); + + + + TopDocs topDocs = indexSearcher.search(query,2); + + //6、取查询结果的总记录数 + System.out.println("查询总记录数:" + topDocs.totalHits); + //7、取文档列表 + ScoreDoc[] scoreDocs = topDocs.scoreDocs; + //8、打印文档中的内容 + for (ScoreDoc doc : scoreDocs) { + //取文档id + int docId = doc.doc; + + + //根据id取文档对象 + Document document = indexSearcher.doc(docId); + System.out.println(document.get("name")); + System.out.println(document.get("path")); + System.out.println(document.get("size")); + System.out.println(document.get("content")); + } + //9、关闭IndexReader对象 + indexReader.close(); + } +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/TestLucene.java b/nladmin-system/nlsso-server/src/main/java/org/TestLucene.java new file mode 100644 index 0000000..bd2783b --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/TestLucene.java @@ -0,0 +1,103 @@ +package org; + +import org.apache.lucene.analysis.TokenStream; +import org.apache.lucene.document.Document; +import org.apache.lucene.document.Field; +import org.apache.lucene.document.TextField; +import org.apache.lucene.index.*; +import org.apache.lucene.queryparser.classic.QueryParser; +import org.apache.lucene.search.IndexSearcher; +import org.apache.lucene.search.Query; +import org.apache.lucene.search.ScoreDoc; +import org.apache.lucene.search.highlight.Highlighter; +import org.apache.lucene.search.highlight.QueryScorer; +import org.apache.lucene.search.highlight.SimpleHTMLFormatter; +import org.apache.lucene.store.Directory; +import org.apache.lucene.store.RAMDirectory; +import org.wltea.analyzer.lucene.IKAnalyzer; + +import java.io.IOException; +import java.io.StringReader; +import java.util.ArrayList; +import java.util.List; + +public class TestLucene { + + public static void main(String[] args) throws Exception { + // 1. 准备中文分词器 + IKAnalyzer analyzer = new IKAnalyzer(); + + // 2. 索引 + List productNames = new ArrayList<>(); + productNames.add("飞利浦led灯泡e27螺口暖白球泡灯家用照明超亮节能灯泡转色温灯泡"); + productNames.add("飞利浦led灯泡e14螺口蜡烛灯泡3W尖泡拉尾节能灯泡暖黄光源Lamp"); + productNames.add("雷士照明 LED灯泡 e27大螺口节能灯3W球泡灯 Lamp led节能灯泡"); + productNames.add("飞利浦 led灯泡 e27螺口家用3w暖白球泡灯节能灯5W灯泡LED单灯7w"); + productNames.add("飞利浦led小球泡e14螺口4.5w透明款led节能灯泡照明光源lamp单灯"); + productNames.add("飞利浦蒲公英护眼台灯工作学习阅读节能灯具30508带光源"); + productNames.add("欧普照明led灯泡蜡烛节能灯泡e14螺口球泡灯超亮照明单灯光源"); + productNames.add("欧普照明led灯泡节能灯泡超亮光源e14e27螺旋螺口小球泡暖黄家用"); + productNames.add("聚欧普照明led灯泡节能灯泡e27螺口球泡家用led照明单灯超亮光源"); + Directory index = createIndex(analyzer, productNames); + + // 3. 查询器 + String keyword = "护眼带光源"; + Query query = new QueryParser("name", analyzer).parse(keyword); + + + // 4. 搜索 + IndexReader reader = DirectoryReader.open(index); + IndexSearcher searcher = new IndexSearcher(reader); + int numberPerPage = 1000; + System.out.printf("当前一共有%d条数据%n",productNames.size()); + System.out.printf("查询关键字是:\"%s\"%n",keyword); + ScoreDoc[] hits = searcher.search(query, numberPerPage).scoreDocs; + + // 5. 显示查询结果 + showSearchResults(searcher, hits, query, analyzer); + // 6. 关闭查询 + reader.close(); + } + + private static void showSearchResults(IndexSearcher searcher, ScoreDoc[] hits, Query query, IKAnalyzer analyzer) + throws Exception { + System.out.println("找到 " + hits.length + " 个命中."); + System.out.println("序号\t匹配度得分\t结果"); + + SimpleHTMLFormatter simpleHTMLFormatter = new SimpleHTMLFormatter("", ""); + Highlighter highlighter = new Highlighter(simpleHTMLFormatter, new QueryScorer(query)); + + for (int i = 0; i < hits.length; ++i) { + ScoreDoc scoreDoc= hits[i]; + int docId = scoreDoc.doc; + Document d = searcher.doc(docId); + List fields = d.getFields(); + System.out.print((i + 1)); + System.out.print("\t" + scoreDoc.score); + for (IndexableField f : fields) { + TokenStream tokenStream = analyzer.tokenStream(f.name(), new StringReader(d.get(f.name()))); + String fieldContent = highlighter.getBestFragment(tokenStream, d.get(f.name())); + System.out.print("\t" + fieldContent); + } + System.out.println("
"); + } + } + + private static Directory createIndex(IKAnalyzer analyzer, List products) throws IOException { + Directory index = new RAMDirectory(); + IndexWriterConfig config = new IndexWriterConfig(analyzer); + IndexWriter writer = new IndexWriter(index, config); + + for (String name : products) { + addDoc(writer, name); + } + writer.close(); + return index; + } + + private static void addDoc(IndexWriter w, String name) throws IOException { + Document doc = new Document(); + doc.add(new TextField("name", name, Field.Store.YES)); + w.addDocument(doc); + } +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/StringUtils.java b/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/StringUtils.java index f3f5e42..f135a53 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/StringUtils.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/StringUtils.java @@ -19,8 +19,6 @@ import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import lombok.extern.slf4j.Slf4j; -import net.dreamlu.mica.ip2region.core.Ip2regionSearcher; -import net.dreamlu.mica.ip2region.core.IpInfo; import nl.basjes.parse.useragent.UserAgent; import nl.basjes.parse.useragent.UserAgentAnalyzer; import org.nl.config.ElAdminProperties; @@ -44,11 +42,6 @@ public class StringUtils { private static final char SEPARATOR = '_'; private static final String UNKNOWN = "unknown"; - /** - * 注入bean - */ - private final static Ip2regionSearcher IP_SEARCHER = SpringContextHolder.getBean(Ip2regionSearcher.class); - private static final UserAgentAnalyzer USER_AGENT_ANALYZER = UserAgentAnalyzer .newBuilder() @@ -199,17 +192,6 @@ public class StringUtils { return object.get("addr", String.class); } - /** - * 根据ip获取详细地址 - */ - public static String getLocalCityInfo(String ip) { - IpInfo ipInfo = IP_SEARCHER.memorySearch(ip); - if(ipInfo != null){ - return ipInfo.getAddress(); - } - return null; - - } public static String getBrowser(HttpServletRequest request) { UserAgent.ImmutableUserAgent userAgent = USER_AGENT_ANALYZER.parse(request.getHeader("User-Agent")); diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/saconfig/SaInitCOnfig.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/saconfig/SaInitCOnfig.java index 6a967a9..67d803d 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/saconfig/SaInitCOnfig.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/saconfig/SaInitCOnfig.java @@ -3,7 +3,6 @@ package org.nl.config.saconfig; import cn.dev33.satoken.config.SaSsoConfig; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; -import org.apache.http.client.HttpClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.ModelAndView; diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneDefaultAppender.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneDefaultAppender.java new file mode 100644 index 0000000..de0a491 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneDefaultAppender.java @@ -0,0 +1,30 @@ +package org.nl.system.service.lucene; + +import ch.qos.logback.classic.spi.ILoggingEvent; +import ch.qos.logback.core.UnsynchronizedAppenderBase; +import org.apache.lucene.document.Document; +import org.apache.lucene.document.Field; +import org.apache.lucene.document.StringField; +import org.apache.lucene.index.IndexWriter; +import org.nl.config.lucene.LuceneIndexWriter; + +/** + * @author ldjun + * @version 1.0 + * @date 2023年05月12日 9:40 + * @desc desc + */ +public class LuceneDefaultAppender extends UnsynchronizedAppenderBase { + + @Override + protected void append(ILoggingEvent eventObject) { + IndexWriter indexWriter = LuceneIndexWriter.getIndexWriter(); + Document document = new Document(); + document.add(new StringField("status_code", "01", Field.Store.YES)); + + + System.out.println("123"); + + } + +} diff --git a/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml b/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml index 7e2d7ef..cebe619 100644 --- a/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml +++ b/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml @@ -6,11 +6,11 @@ spring: druid: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy -# url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:nl-sso-server}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true - url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:stand_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true + url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:nl-sso-server}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true +# url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:stand_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true username: ${DB_USER:root} -# password: ${DB_PWD:Root.123456} - password: ${DB_PWD:12356} + password: ${DB_PWD:Root.123456} +# password: ${DB_PWD:12356} # 初始连接数 initial-size: 5 # 最小连接数 @@ -57,7 +57,19 @@ spring: database: ${REDIS_DB:2} host: ${REDIS_HOST:127.0.0.1} port: ${REDIS_PORT:6379} - password: ${REDIS_PWD:} +# password: ${REDIS_PWD:} + #连接超时时间 + timeout: 5000 + redisson: + config: | + threads: 4 + nettyThreads: 4 + singleServerConfig: + connectionMinimumIdleSize: 8 + connectionPoolSize: 8 + address: redis://127.0.0.1:6379 + idleConnectionTimeout: 10000 + timeout: 3000 # 登录相关配置 login: diff --git a/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml b/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml index f0fc978..4c8e76e 100644 --- a/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml +++ b/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml @@ -59,6 +59,16 @@ spring: password: ${REDIS_PWD:} #连接超时时间 timeout: 5000 + redisson: + config: | + threads: 4 + nettyThreads: 4 + singleServerConfig: + connectionMinimumIdleSize: 8 + connectionPoolSize: 8 + address: redis://127.0.0.1:6379 + idleConnectionTimeout: 10000 + timeout: 3000 # 登录相关配置 login: # 登录缓存 diff --git a/nladmin-system/nlsso-server/src/main/resources/config/application-test.yml b/nladmin-system/nlsso-server/src/main/resources/config/application-test.yml index f10e4cb..828e699 100644 --- a/nladmin-system/nlsso-server/src/main/resources/config/application-test.yml +++ b/nladmin-system/nlsso-server/src/main/resources/config/application-test.yml @@ -56,9 +56,18 @@ spring: database: ${REDIS_DB:15} host: ${REDIS_HOST:127.0.0.1} port: ${REDIS_PORT:6379} - password: ${REDIS_PWD:} #连接超时时间 timeout: 5000 + redisson: + config: | + threads: 4 + nettyThreads: 4 + singleServerConfig: + connectionMinimumIdleSize: 8 + connectionPoolSize: 8 + address: redis://127.0.0.1:6379 + idleConnectionTimeout: 10000 + timeout: 3000 # 登录相关配置 login: # 登录缓存 diff --git a/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml b/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml index db627cc..bc9932f 100644 --- a/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml +++ b/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml @@ -23,7 +23,6 @@ https://juejin.cn/post/6844903775631572999 ${log.pattern} - ${log.charset} @@ -54,10 +53,16 @@ https://juejin.cn/post/6844903775631572999 500 + + + + + + diff --git a/nladmin-system/pom.xml b/nladmin-system/pom.xml index addcceb..e035d25 100644 --- a/nladmin-system/pom.xml +++ b/nladmin-system/pom.xml @@ -2,13 +2,17 @@ - - org.springframework.boot - spring-boot-starter-parent - 2.2.10.RELEASE - 4.0.0 + + UTF-8 + UTF-8 + 1.8 + @ + ${java.version} + ${java.version} + + nlsso-server @@ -17,13 +21,18 @@ nladmin-system 0.0.1-SNAPSHOT 核心模块 - - 1.31.0 - - - - - + + + + + org.springframework.boot + spring-boot-dependencies + 2.2.10.RELEASE + pom + import + + +