- 博客(16)
- 资源 (3)
- 收藏
- 关注
原创 什么是耦合?解耦合的方法有哪几种?
在项目的开发过程中,我们经常强调项目的代码模块尽量做到低耦合高内聚,但是什么是耦合?怎样做到低耦合?可能有很多人感到疑惑,下面我来跟大家讲解什么是耦合,怎么进行解耦合实现低耦合。一、什么是耦合? 耦合指的就是两个类之间的联系的紧密程度,看下面这段代码: public class A{ public int i; } public class B{
2017-09-03 13:53:17 44105 9
原创 Elasticsearch项目实战整理之搜索篇
在讲文本搜索之前,我们需要先知道文本的倒排索引是如何构建的。我们都知道es文本常用的两种数据类型keyword, text,这两种文本类型唯一区别就是在索引文档时,keyword类型文本不会进行分词,而是直接将字段内容作为一个关键词,构造倒排索引。而text字段会对对应文本进行分词,分词之后变成一个或多个关键词,构造倒排索引。搜索之termterm搜索是一种等值比较的搜索,es会将term中全部文本作为一个关键词在倒排索引中匹配查询,如有匹配则返回结果。term查询场景适用于查询如 性别,类型等需要进行
2021-11-03 16:51:54 1573
原创 Elasticsearch项目实战整理之倒排索引
搜索之倒排索引何为倒排索引,要理解倒排索引的概念还要结合着正向索引一起理解,当我们深入了解mysql的索引之后,我们就对所谓正向索引有了一定了解,从宏观角度来看,mysql中正向索引是对每一行数据都加了一个类似目录的东西,我们通过目录索引找到符合条件的数据行,每一个索引对应一条数据,当然索引的具体实现与上文描述略有差异,此处先按下不讲。正向索引结构如下倒排索引最直观的感受就是对关键词搜索查询速度很快,索引的主体是关键词。倒排索引结构如下从上面很明显看出,正向索引与倒排索引的区别就是正向索引是一
2021-11-03 16:23:18 1304
原创 ES查询中terms查询条件太多处理方法,Terms Lookup语法
terms-lookup语法使用terms可以进行多值查询, 只要目标文档匹配terms查询中的一个值, 此文档就会被标记为查询结果中的一个, 但terms的参数值是有限制的, 默认65535个元素, 你可以通过设置index.max_terms_count来进行更改. 我们还可以通过terms lookup语法来解决terms参数元素过多的情况terms lookup参数说明:index: 参数值存储的索引名称id: 参数值存储的文档idpath: 参数值存储的字段名称routing: 参数
2021-04-26 17:07:46 9005 1
原创 painless语法入门
painless语法painless基础结构 "script": { "lang": "...", "source" | "id": "...", "params": { ... } }lang: 定义脚本使用的语言, 默认painlesssource, id: 脚本的主体, source后面跟着内联的脚本代码, id后面跟着脚本的id, 具体代码存在于脚本id对应的代码中params: 定义一些变量的值, 使用params可以减少脚本的编译次数. 因为如果
2021-04-26 16:42:33 3552
原创 Elasticsearch中根据请求的集合顺序进行排序
返回的结果按照请求的id集合顺序返回使用自定义脚本计算得分, 按照得分默认的降序顺序返回结果{ "query":{ "function_score":{ "boost_mode":"replace", "query":{ "bool":{ "filter":{ "ids":{ "values":[
2021-04-26 11:38:59 653
原创 优雅处理curl请求中body的json参数
curl -XPUT http://localhost:9200/index/type/id -d '{ "message":"这个一个body参数"}'
2020-10-23 14:32:11 4242 1
原创 web项目开发命令规范
1. Service/Controller层方法命令规范获取单个对象的方法用 get前缀。获取多个对象的方法用 list 做前缀,复数形式结尾如:listObjects。获取统计值的方法用 count 做前缀。插入的方法用 add 做前缀。删除的方法用 remove 做前缀。修改的方法用 set/modify 做前缀。2. Mapper层方法命令规范获取对象方法以select...
2020-02-04 20:49:52 267
原创 Java正则表达式的使用
在Java开发场景中我们经常会遇到需要获取一串字符串中某一特殊字符串段的情况,有些我们可以通过split方法一点点的剥离出来,有些即使是使用split也不太好办,如果使用正则表达式会有奇效。正则表达式的匹配规则在使用正则表达式之前一定要先熟悉正则表达式的匹配规则,规则如下:代码用例获取字符串str中的类名和方法名package com.BlogExample;impo...
2019-05-23 22:13:58 245
原创 去除Byte数组的空字符\u0000
工作中在使用byte数组进行文件读取操作的时候,经常遇到byte数组mei没有填满,导致后面有一大堆\u0000字符,使得显示极为难看。去除byte数组代码如下: byte[] outputByte = new byte[4096]; String str = new String(outputByte); Pattern p...
2019-03-27 18:09:30 10184
转载 volatile关键字的作用、原理
volatile关键字的作用、原理欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全...
2018-12-10 16:43:14 235 1
原创 Java不解压直接读取zip文件和文件内容
Java直接读取zip文件有两种方法:通过zip文件的流直接读取文件 public static void readZipFile(ZipInputStream zipInputStream) throws IOException { while((zipInputStream.getNextEntry())!=null){ Buffered...
2018-12-02 21:37:14 15827 3
原创 easyUI中dialog弹出框中数据加载不出来
在前端使用easyUI开发的过程中遇到一个奇怪的问题,easyUI中的dialog中的combobox数据有时加载不出来,或者是一些文字也有时加载不出来,后来发现,dialog每次关闭并不会销毁原dialog中的元素,关闭的dialog中未被销毁的元素会对下一次打开同一dialog的数据加载产生影响,所以需要在关闭dialog时清理dialog中的元素信息,在关闭事件中加一行代码即可。 va...
2018-06-05 20:35:36 4335 1
原创 验证运行时常量池在JDK1.7被移到Java堆中
JDK1.6代码运行及其结果/** * VM options:-Xms10M -Xmx20M -XX:PermSize=10M -XX:MaxPermSize=10M -XX:-UseGCOverheadLimit */public class StringIntern { public static void main(String[] args) { Li...
2018-04-19 23:20:27 1574 3
原创 Java中为什么静态方法不能访问非静态方法
因为静态方法的加载总是在非静态方法之前进行的,静态方法加载是在访问静态方法或者创建这个类时进行,程序会为静态方法创建一个静态域,而非静态方法是在调用这个方法时加载,静态方法不依赖该类的对象就可以进行方法的调用,而非静态方法必须要有该类对象,所以一旦静态方法调用非静态方法就会出现一种情况,一个已存在的数据模块引用了一个不存在的数据模块,编译器就无法判断该不存在的引用在内存的具体位置,导致编译器编译错误
2017-09-06 23:12:43 500
简单的水果售卖系统--适合初学者
2017-09-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人