自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 项目实训 : 搜索引擎构想

由于古籍中存在大量的古文字,现存的搜索引擎对其支持度并不满意,于是我决定自己写一个小型的搜索引擎,以专门服务器与我们的古籍。我们的目的是根据前端传入个个别字句进行文章的匹配。文章并不会包含字符,字符主要是存在中,包含了其父文章的,并且存有具体的内容,我们可以根据这一特征构建一个,用于将不同的转化为具有具体内容的应该具有以下内容:然后我们根据进行中文分词,将其分为若干个不相同的字词并对这些字词进行存储,存储为实体,大致内容:SearchableSegment由于存在列表,故使用存储。其次,由于文章内容并不是一

2022-06-10 15:15:50 271 1

原创 个人项目总结

项目个人总结

2022-06-07 18:03:59 537

原创 项目实训 : 输入法构思

功能描述我们的输入法需要做到古文字的typing。古文字输入法的问题在于如何展示一个古文字,以及如何通过键盘的输入来映射出我们想要的古文字。首先,我们必须明确一下几个关键点:展示古文字通过键盘输入获取到古文字其次,我们可以考虑如下的功能:根据用户打字习惯来对文字的输出进行排序,优先将用户常用的文字排在前头多种键盘输入到古文字的映射问题现阶段需要设计一个输入法中专用的实体来表示古文字,但是如何保证文章标识的文字和输入法中的文字的一致性确定输入法文字实体的属性允许文档形式的同一种

2022-04-12 16:53:00 391

原创 项目实训 : 关于对于项目当前架构的优化思路

关于对于项目当前架构的优化思路层次分工存在的问题冗余当前项目中存在很多的没有意义的方法转接,比如从类1的insert方法直接调用类2的insert方法,类2insert直接调用调用类三的insert,十分的单一且冗余。这样调用完全失去了层层封装,不同层次不同分工的意义。我们应该消除掉这些冗余的调用,转为更加简洁的层次结构。示例既然有了service层,又是调用其他的api,那么就不需要划分成这么多层。模糊现在的层次之间交互的接口包含了一些Map和Object,然而Map参数如果没有注

2022-04-12 16:51:36 179

原创 项目实训 : Solr 使用中遇到的问题

title: Solr 使用中遇到的问题tags: [Sdudoc, solr, linux]categories: 技术前言笔者使用的Solr版本是solr-8.11.0正文启动时警告*** [WARN] *** Your open file limit is currently 1024.It should be set to 65000 to avoid operational disruption.If you no longer wish to see this warni.

2022-04-12 16:47:37 1234

原创 项目实训 : Solr8 在linux服务器的部署与所遇到的问题记录

title: Solr8 在linux服务器的部署与所遇到的问题记录tags: [Sdudoc, Tomcat, Solr, Liunx, Sdudoc]categories: 技术Tomcat配置在 linux 的 /usr/local 目录下新建一个 solr 目录下载最新的Tomcat到 Linux 系统的 /usr/local/solr下,下载链接:tomcat[root@localhost solr]# lsapache-tomcat-8.5.75.tar.gz然后解.

2022-04-12 16:45:28 480

原创 项目实训 : redis集群部署一直卡在Waiting for the cluster to join

redis集群部署一直卡在Waiting for the cluster to join配置Redis集群的时候在最后create cluster时发现一直卡在Waiting for the cluster to join,但是我建立集群的时候已经将每个服务器对应的redis占用的端口在防火墙中开放出去了,不应该有这样的问题才对。趁点还没有打满屏幕赶紧查看了一下官方文档,文档说除了redis占用的端口(默认为6379)之外,还会占用部署的端口+10000的端口作为集群总线端口,需要将这个端口也在防火墙中

2022-04-12 16:43:02 2137 1

原创 项目实训 : gitlab 配置ssh key后不生效问题

title: gitlab 配置ssh key后不生效问题tag: [Sdudoc, git, gitlab, ssh, ssh key]category: 技术描述由于项目更换了远程仓库,从github迁移至gitlab,笔者于是新建了一个ssh key专门用于gitlab的认证,但是使用时却发现ssh key并没有生效。笔者认为必须要搞清楚ssh认证期间发生了什么。先尝试执行:ssh -vvvT git@gitlab.swsdu.online完整的DEBUG信息在附录中,这里截取一.

2022-04-12 16:29:35 6648

原创 创新实训13

2021SC@SDUSC这次我们来分析最后的板块,managerconfigconfig包下有关于跨域资源共享的配置,数据源配置,以及错误配置CorsConfigcorsConfig继承自WebMvcConfigurer,重写了一个方法 addCorsMappings,该方法配置 "全局 "跨源请求处理。配置的 CORS 映射适用于注释控制器、功能端点和静态资源。被注释的控制器可以通过 @CrossOrigin 进一步声明更精细的配置。在这种情况下,这里声明的 "全局 "CORS配置与控制器方法上

2021-12-27 21:14:32 173

原创 创新实训 12

2021SC@SDUSC这次我们继续分析Security模块SecurityConfig首先我们看到 SecurityConfig@Configuration@EnableWebSecurity@EnableGlobalMethodSecurity(prePostEnabled = true)public class SecurityConfig extends WebSecurityConfigurerAdapter { // ...}SecurityConfig上面启用了三个注解,

2021-12-18 16:41:55 652

原创 创新实训 11

2021SC@SDUSC我们的项目中用到了很多关于Spring Security的内容,笔者虽然已经在学习Spring Security了,但是对于项目这种多个模块分离的Spring Security的使用流程还是不甚了解,今天我们就来理清一下项目中Spring Security 的逻辑。JwtAuthenticationTokenFilter首先我们看到位于security模块的 JwtAuthenticationTokenFilter 模块,他的 doFilterInternal 中关于当用户

2021-12-12 12:29:24 591

原创 创新实训 10 java多线程

2021SC@SDUSC多线程1.什么是进程?什么是线程?​ 进程是一个应用程序。​ 线程是一个进程中的执行场景/执行单元​ 一个进程可以有多个线程2.java程序的进程对于java程序而言,当执行一个java程序时,会先启动JVM,JVM就是一个进程JVM再启动一个主线程调用main方法。同时再启动一个垃圾回收线程负责看护,回收垃圾。最起码,现在的java程序中有两个线程并发。3.进程​ 在java语言中:​ 线程A和线程B,堆内存和方法区内存共享,但是栈内存独立,一个线程一个栈

2021-12-07 15:40:52 296

原创 创新实训 9

2021SC@SDUSC这次分析SpringSecurity部分源码SpringSecurity本质是一个过滤器链查看源码:FilterSecurityInterceptor :是一个方法级的权限过滤器,基于过滤器的最底层public class FilterSecurityInterceptor extends AbstractSecurityInterceptor implements Filter { private static final String FILTER

2021-11-28 21:06:53 485

原创 创新实训 8 IO

2021SC@SDUSCFile类至于IO流,也就是输入输出流,从文本出发到文本结束,至始至终都离不开文件,所以IO流还是得从文件File类讲起。1.1 File概述java.io.File 类时专门对文件进行操作的类,只能对文件本身进行操作,不能对文件内容进行操作。java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。即:File 跟流无关,File类不能对文件进行读和写。1.2 构造方法我们主要来想学习一下比较常用的三个: publ

2021-11-15 10:49:37 145

原创 创新实训 7

2021SC@SDUSC分析Webflux框架1、Spring webFlux介绍2、响应式编程3、WebFlux执行流程和核心API4、SpringWebFlux(基于注解编程实现)5、SpringWebFlux(基于函数式编程模型)前置知识SpringMVCSpringBootMavenJava8新特性Spring webFlux介绍Webflux是Spring5添加新的模块,用于web开发的,功能与SpringMVC类似,Webflux基于当前流行的响应式编程使用

2021-11-07 23:42:22 123

原创 创新实训 6 :初探Solr源码

2021SC@SDUSC** 提示源码展示中笔者会将重载的方法省略,只展示关键方法探索SolrClientsdudoc的检索功能主要是通过solr实现的,本人确实很好奇solr框架的源码是如何实现的。首先我们需要在 application.properties 中配置solr的服务器主机地址。我们使用 solr 主要是通过SolrClient 类进行操作的,solr 的源码大致如下:public abstract class SolrClient implements Serializ

2021-10-30 11:35:10 262

原创 创新实训 5

2021SC@SDUSCSolrController什么是SolrSolr(读作“solar”)是Apache Lucene项目的开源企业搜索平台。其主要功能包括全文检索、命中标示[1]、分面搜索、动态聚类、数据库集成,以及富文本(如Word、PDF)的处理。Solr是高度可扩展的,并提供了分布式搜索和索引复制。Solr是最流行的企业级搜索引擎,[2]Solr 4还增加了NoSQL支持。[3]Solr是用Java编写、运行在Servlet容器(如Apache Tomcat或Jetty)的一个独立的

2021-10-24 17:36:06 119

原创 创新实训 4

2021SC@SDUSC这次我们继续分析search-engine模块DmsArticleController这个类中只有一个接口@RequestMapping("/findAll")@ResponseBodyList<DmsArticle> findAll() { return dmsArticleService.findAll();}其中我们可以看到他调用的时ArticleService服务层,继续深挖,我们可以知道ArticleService的服务如下:publ

2021-10-22 20:28:17 134

原创 创新实训 3

2021SC@SDUSC上周的会议指出了项目的新方向在于指定一个XML规范,来实现文本的格式化存取,保存文本的格式信息,而非单只有文本内容信息。大致如下:另外,这周主要是继续学习Spring框架中的事务管理部分事务管理事务写在JavaEE三层结构中的Service层中在Spring进行事务管理操作有两种方式:编程式事务管理和声明式事务管理(一般使用后者)声明式事务管理基于注解(使用)基于xml配置文件在Spring进行声明式事务管理,底层使用AOPSpring事务管理AP

2021-10-17 23:55:41 110

原创 创新实训2 初步了解项目架构以及项目技术细节

2021SC@SDUSCSDUDOC架构SDUDOC运用的技术包含:Spring-bootSpring-securityMybatisMonogoDBRedisJwtsolrPOIswaggerHibernate…项目分为7个模块,分别是search-engine搜索服务sdudoc-security安全服务sdudoc-mysqlsdudoc-mbgMybatis自动生成代码集,具体原理还不了解sdudoc-manager

2021-10-09 17:40:36 210

原创 创新实训1 小组分工以及项目部署

2021SC@SDUSC小组讨论项目背景近些年来,越来越多的资料被上传到了云端,数字化已经成为了时代的潮流。古籍领域亦是如此。然而现阶段国内对于古文字书籍并没有一个方便且功能全面的研究平台,像是国家图书馆、中国哲学书电子化计划、阿里达摩院汉典重光等项目所作的基本上满足查询的需求,不提供书籍映像原貌、或是不提供繁简转换、或者不能把搜索到的内容定位到相关古籍页面。SDUDOC项目目标是用户输入简体汉字就可以自动匹配到相关古籍,并可以查找到相关的古籍原文,观看到古籍的原貌。同时通过图像识别自主区分注释与正

2021-09-30 19:26:24 811

原创 关于Flutter真机调试下无法访问网络资源的问题

关于Flutter 真机调试下无法访问网络资源的问题首先,对于低于android 9的版本,我们只需要在manifest中添加以下权限即可:<uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="andr

2021-08-09 13:14:22 1674

原创 leetcode115 利用动态规划解决“匹配子串”问题

ps:今天发烧了,所以可能写的不清楚,见谅TAT题目分析:动态规划首先,这道题一定不能用递归去写。今天执行程序,数值还好的话说不定明天就执行完了= =首先我们来分析子串的性质,假设我们有两个字符串:babagbagbabag让后者去匹配前者,可以分为这样的步骤:从b开始,可以试着找出所有b的位置,然后找每一个b后面a的位置,然后再找每一个a后面g的位置,最后就可以数出所有的子序列这种需要记录前面的情况来推出后面的情况的思路,一般都用动态规划来高效解决。算法思路(笔者在写代码

2021-03-17 18:18:29 190

原创 331.验证二叉树的前序序列化

前序遍历结果判断二叉树是否完整的非二叉树方法题目:题目分析:首先,前序遍历的特点是,(以题目示例为例)假设我们从根节点9出发,前序遍历的第一个节点是3,这时候,所有的操作都是基于3来执行的,除非3被更深的节点(4或1)覆盖(就如同3覆盖根节点9一般)或者3前序遍历结束,回到了根节点9.这么一分析,这似乎就是栈结构嘛!假设我们将每个节点都设置一个计数器,遇到一个非‘#’节点就将其压入栈,如果每遇到一个他的子节点,就加一,如果已经为2就将节点弹出栈(说明这个节点下面的都已经被遍历过了),如果遇

2021-03-12 16:13:34 247 1

转载 神奇的算法--manacher算法

神奇的算法–manacher算法在获取一个字符串中最长的回文串,一般的做法是遍历每一个字符,然后以其为中心向两边展开,最终通过比较所有的情况后得到最长的字符串这方法是大部分人能够想到的。但是在时间复杂度上,是O(n²)。如,对于长度为1000的字符串,计算量将会达到1百万。这时候,如果你用manacher算法,其时间复杂度是惊人的O(n),即计算量和字符串长度是一个数量级!可惜的是,manacher算法仅仅适用于解决回文串。(自己写了好几次解释,但是最后看来还是官方的解答最清晰,所以选择转载官方的

2021-03-10 22:54:05 274

原创 递推算法:分割回文串

分割回文串回文串(palindrome string):指一个镜像对称的字符串abbaaasdsa但如果一个字符串并不是回文串,它可以被视为是一系列回文串的组合:aab = aa + basdf = a + s + d + fadd = a + dd现在我们要解决:对于一个字符串,其最少要分割几次才能使得得到的子串都是回文串?我们可以运用递推的方法,来得到一个长为n的串需要分割几次才能全部分割成回文串:如果记函数f(j)表示前j个字符形成的子串的最小分割数(比如字符串“12

2021-03-09 17:02:28 639 3

原创 Python study_note

@author bingxian (Ongoing update …)Day 1INTRODUCTION(copy by my IDE, so everything display in code’s way)this is my Python study place and my study notethere will include major grammar of Pythonthe code will all be turn into annotation, you can r

2021-03-08 22:40:16 127

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除