自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

瘦子没有夏天

不与别人比起点,只与别人比终点,把一切抱怨的时间用来学习!

  • 博客(244)
  • 资源 (10)
  • 收藏
  • 关注

原创 Elasticsearch(039):es中搜索之排序

一、概述默认情况下,结果集会按照相关性进行排序 – 相关性越高,排名越靠前。为了使结果可以按照相关性进行排序,我们需要一个相关性的值。在ElasticSearch的查询结果中, 相关性分值会用_score字段来给出一个浮点型的数值,所以默认情况下,结果集以_score进行倒序排列.二、Es中排序使用2.1 简单排序例如下面的按照创建时间的倒序排序。GET example/docs/_search{ "query": { "match_all": {} }, "sort": [

2021-02-22 21:37:51 7

原创 EasyExcel之回填下拉框

一、业务背景1.1 技术演进在业务系统的开发中,我们会经常遇见各类各样的Excel导出,按照传统的做法,我们会引入第三方工具jar: POI来实现我们的导出功能。但是这也有缺点,我们的业务代码中充斥着重复且没有很多意义的代码。于是EasyExcel诞生了,它的出现了大大降低了我们开发的工作量,给我们提供了不少便利。EasyExcel官方源码: 链接官方文档: 链接在这里,对EasyExcel我们就不做过多介绍,有不了解的同学可以根据上述的官方地址进行自行学习。本篇文章所探求的主旨均是建立

2021-01-20 10:29:49 241 1

原创 EasyExcel之填充公式导出Excel

一、业务背景1.1 技术演进在业务系统的开发中,我们会经常遇见各类各样的Excel导出,按照传统的做法,我们会引入第三方工具jar: POI来实现我们的导出功能。但是这也有缺点,我们的业务代码中充斥着重复且没有很多意义的代码。于是EasyExcel诞生了,它的出现了大大降低了我们开发的工作量,给我们提供了不少便利。EasyExcel官方源码: 链接官方文档: 链接在这里,对EasyExcel我们就不做过多介绍,有不了解的同学可以根据上述的官方地址进行自行学习。本篇文章所探求的主旨均是建立

2021-01-18 14:10:25 390 1

原创 Spring源码之MethodIntrospector的原理解析与实际应用

一、概述1.1 说明从4.x版本开始,MethodIntrospector是spring-core中一个频繁使用的工具类。该类通常用来:用于搜索与元数据相关的方法的算法,包括接口和父类,同时还处理参数化方法以及基于接口和基于类的代理遇到的常见情况。通常(但不是必须)用于查找带注释的处理程序方法。二、源码解析2.1 源码/** * Defines the algorithm for searching for metadata-associated methods exhaustively *

2020-12-07 11:40:18 158

原创 Elasticsearch(038):es中搜索之入门与分页搜索

ES中搜索的方式分为两种,一种是通过URL参数进行搜索;另一种是通过POST中body请求参数进行搜索。针对第一种我们进行简单的讲解,我们关注的核心放在第二种上面。一、简单搜索(search)1.1 测试使用的index、mapping及数据准备PUT examplePUT example/docs/_mapping{ "properties": { "id": { "type": "long" }, "orderN

2020-11-23 14:48:01 104

原创 Elasticsearch(037):es中批量操作之bulk

一、bulk概述1.1 bulk的基础概念bulk是es提供的一种批量增删改的操作API。1.2 bulk的语法bulk对JSON串的有着严格的要求。每个JSON串不能换行,只能放在同一行,同时,相邻的JSON串之间必须要有换行(Linux下是\n;Window下是\r\n)。bulk的每个操作必须要一对JSON串(delete语法除外)。{ action: { metadata }}{ request body }{ action: { metadata }}{ reques

2020-10-23 10:45:47 897

原创 Elasticsearch(036):es中批量操作之mget(批量查询)

mget(批量查询)一、介绍mget是es提供的一种批量的读取操作的API。mget API允许根据索引,类型(可选)和id(以及可能的路由)获取多个文档。响应包括一个docs数组。该数组具有与原始多重获取请求相对应的所有提取文档(如果特定的get失败,则在响应中包含包含此错误的对象)。成功获取的结构与get API提供的文档的结构相似。二、示例用法2.1 测试数据准备示例索引结构如下PUT examplePUT example/docs/_mapping{ "properties"

2020-10-22 09:32:43 280

原创 Elasticsearch(035):es中Document(文档)之修改文档

一、概述回顾前几个小节,我们学习了文档的新增、文档的删除、文档的查询。当然,在实际的使用,存在诸多场景对文档进行修改操作的需求,在这一小节中,我们来学习下ES中文档常见的修改api。二、全量更新(等于删除重建重新索引)2.1 说明这种是比较常见的,也就是覆盖更新。所谓的覆盖更新,就是是把原来的值都删掉,只保留新操作填充的字段值。(相当于删除了重新添加一个。其中可能除了id,其他的值可能都不相同)。示例如下。2.2 示例PUT example# 新建mappingPUT example/d

2020-09-29 11:48:42 656

原创 Elasticsearch(034):es中Document(文档)之主键查询文档

一、概述在上一小节中,我们学习了文档的删除用法。当然,除了新增、删除之外,还有最重要的就是文档查询操作。es中的文档的查询操作有以下几类: 主键查询、DSL查询等等。二、查询文档(主键查询)2.1 语法查询GET index(索引名称)/type(type名称)/id(id的值)测试HEAD index(索引名称)/type(type名称)/id(id的值)这是一个测试方法。返回200和404状态码进行判断。2.2 使用查询id为2的用户的详情信息GET example

2020-09-21 16:10:46 409

原创 Elasticsearch(033):es中Document(文档)之删除文档

一、概述在上一小节中,我们学习了文档的定义和新增语法。当然,有新增操作,相反的就会有删除操作。es中的文档的删除操作分为两类: 主键删除 和查询删除。二、删除文档(主键删除)示例: 下面操作的含义 删除id为1的文档记录。DELETE example/docs/1返回结果{ "_index": "example", "_type": "docs", "_id": "1", "_version": 2, "result": "deleted", "_shards": {

2020-09-04 14:42:58 516

原创 Elasticsearch(032):es中Document(文档)之新增文档

一、概述文档是具体的数据记录,一个文档有点像数据库中的一条记录,文档必须包含在一个索引中。二、新增文档2.1 新增语法#新建映射PUT examplePUT example/docs/_mapping{ "properties": { "id": { "type": "long" }, "username": { "type": "text" }, "birt

2020-09-02 16:44:44 694

原创 Elasticsearch(031):es中Meta-Fields(元数据类型)之概述(_source)

概述_source字段包含索引是原始的JSON文档内容,字段本身不建立索引(因此无法进行搜索),但是会被存储,所以当执行获取请求是可以返回_source字段。虽然很方便,但是_source字段的确会对索引产生存储开销,因此可以禁用_source字段。可以通过以下接口进行打开或关闭。PUT example/docs/_mapping{ "secilog": { "_source": { "enabled": false } }}

2020-08-05 10:11:50 209

原创 CentOS常见命令之远程拷贝(scp)

1. 背景作为后端开发或者运维工程师,服务器是我们必须牢牢掌握的一门技术。这小节中我们主要探究ContOS7下远程拷贝文件的用法和示例。说起CentOS中拷贝,我们最常使用的就是cp 命令了,其格式为cp 源目录或文件 目标目录或文件。示例,我们将服务器上的/home/test.txt拷贝到/tmp下: cp /home/test.txt /tmp。当然,这不是我们今天要探讨的主角,我们今天的主角是scp即远程拷贝命令,这个在一个局域网内服务器之间拷贝相当的方便。2. 示例语法scp [可选参

2020-07-10 22:41:21 645

原创 在VMware下安装CentOS7后配置静态IP
原力计划

在VMware下安装CentOS7后配置静态IP1. 背景说明近些年云服务器、云主机日趋流行起来,使得个人搭建私人博客、网站的成本越来越低。作为一名服务端开发,我们的绝大部分的软件和环境都运行在Linux环境下,所以掌握服务器的相关技术是十分必要,但是对于个人来说,云服务器的费用也是一笔不少的花销(多台服务器集群就更贵了),所以就有了VMware等虚拟机软件来解决我们的问题。但是我们在PC上使用VMware上安装CentOS7系统,通常会面临一个问题,那就是CentOS7的地址不是固定(不固定的IP

2020-07-10 18:19:32 478

原创 Elasticsearch(030):es中Meta-Fields(元数据类型)之概述(_routing)

1. 概述先说明此参数在使用一些高级的ES的特性的时候,经常用到,请认真理解。文档在索引中利用下面的公式路由到特定的分片:shard_num = hash(_routing) % num_primary_shards,_routing字段的默认值使用的文档的_id字段。如果存在父文档,则使用文档的_parent编号。可以通过为每个文档指定一个自定义的路由值来实现自定义的路由方式。2. 示例与理解mappping定义和数据插入PUT examplePUT example/docs/_ma

2020-07-01 21:21:06 861

原创 Elasticsearch(029):es中Meta-Fields(元数据类型)之概述(_index)

1. 概述在多个索引中执行查询的时候,有时候需要添加子查询来关联特定的索引文档。_index字段可以匹配包含某个文档的索引。在term或terms查询,聚合,脚本以及排序的时候,可以访问_index字段的值。注意:_index是一个虚拟字段,不作为一个真实的字段添加到Lucene的索引中。这意味着可以在term或terms查询(任何可以重写term查询:如match.query_string,simple_query_string)中使用_index字段,但是不支持prefix、wildcard、

2020-07-01 21:13:17 324

原创 Elasticsearch(028):es中Meta-Fields(元数据类型)之概述(_id)

1. 概述每个文档都有一个_id唯一标识它的索引,该索引已建立索引,以便可以使用GET API或 ids query查找文档。不指定的话,es也会默认生成一个id字符串。_id查询经常用在一下查询中:term, terms,match,query_string,simple_query_string2. 示例Mapping定义和插入PUT examplePUT example/docs/_mapping{ "properties":{ "cityId":{"type"

2020-07-01 21:08:10 1923

原创 Elasticsearch(027):es中Meta-Fields(元数据类型)之概述(_field_names)

概述该_field_names字段会索引文档中所有包含非空值的字段名称。_field_names字段用于存在查询和缺失查询的情况下,查询指定指定字段拥有非空值的文档是否存在。注意:由于_field_names引入了一些索引时间开销,因此,如果要优化索引速度并且不需要exists查询,则可能需要禁用此字段。使用示例PUT examplePUT example/docs/_mapping{ "properties":{ "id":{"type": "long"},

2020-06-22 15:00:10 494

原创 CentOS常见命令之防火墙

1. 查看、关闭、开启防火墙1.1 查看防火墙运行状态systemctl status firewalld输出结果● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since 四 2020-

2020-06-04 22:44:30 2513 3

原创 JDK14新特性之instanceof模式匹配

JDK14新特性之instanceof1. 背景及动机通过对instanceof运算符进行模式匹配来增强Java编程语言。模式匹配允许程序中的通用逻辑,即从对象中有条件地提取组件,可以更简洁,更安全地表示。这是JDK 14中的预览语言功能。动机几乎每个程序都包含某种逻辑,这些逻辑结合了对表达式是否具有某种类型或结构的测试,然后有条件地提取其状态的组件以进行进一步处理。例如,所有Java程序员都熟悉实例化。经常见到如下代码:if (obj instanceof String) { Strin

2020-05-19 15:48:00 494

原创 超大Excel读取和写出(支持50万+)(一)

超大Excel读取和写出(支持50万+)一、现状假设我们的测试或生产环境的内存条件有限,比如说2GB(当然小数据的导入和导出不在本文的讨论范围,因为导入和导出它们几乎不存在内存溢出问题)。这里,我们假如:项目中有50W条及以上数据需要进行excel导入和导出。使用普通的POI包中HSSFWorkbook(2003版及以前的版本)和XSSFWorkbook(2007版及以后的版本),很容易造...

2020-05-06 21:05:04 1103

原创 超大Excel文件写出(支持50w+)(二)

超大Excel文件写出(支持50w+)1 线上内存溢出问题演示环境准备jvm运行参数设置如下: -Xms100M -Xmx100M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=d://dump.hprof示例代码/** * 超大excel写出示例 * * @author Leon * @date 2020-05-06 11:2...

2020-05-06 21:03:44 1254

原创 超大Excel文件读取(支持50w+)(三)

超大Excel文件读取(支持50w+)1 线上内存溢出问题演示环境准备准备一个大的excel文件(xlsx大小10M及以上)将jvm的heap缩小到500m(JVM 参数 -Xmx500m)用于模拟OOM使用参数在OOM时dump内存快照 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=d://dump.hprof依赖管理 &l...

2020-05-06 20:59:47 1907

原创 JDK14新特性之Record

Record类型1、概念记录类型(record)是JDK 14的另一个预览功能。记录类型的作用类似于Kotlin中的数据类(data class)和Scala中的case class。记录类型的作用是作为不可变数据的封装。类似于枚举类型,记录类型是一种形式受限的类。一个记录类型由名称和状态描述两部分组成。状态描述声明了记录中包含的组件。2、 示例下面代码中的Student就是一个记录类型。...

2020-05-06 20:12:35 1086

原创 Win10下Python3.x环境安装和配置教程

Window10下Python环境安装1. 下载Python的安装包打开浏览器访问https://www.python.org/downloads/windows/ 。此步骤完成,本地以下载好python3.8版本的安装包一个。2. 安装配置项选择双击刚刚下载好的安装包。到此,python3.8的环境已经安装到系统中去。3. 验证是否安装成功打开cmd命令行,输入pyth...

2020-05-02 17:27:54 706

原创 Elasticsearch(026):es中Meta-Fields(元数据类型)之概述(_all)

一、es中元数据类型概述es中总共包含以下几种元数据参数。详细请看下表。后续的几个小节主要学习ES自带的一些元数据类型及其含义。每个文档都有与之关联的元数据,例如_index,_type和_id元字段。其次,创建映射类型时,可以自定义其中一些元字段的行为。二、 _all在6.0.0中已弃用。在这里不做过多介绍,也不推荐在实际项目中使用。...

2020-04-19 16:31:27 285

原创 Elasticsearch(025):es常见的字段映射类型之单词计数类型(token count)

概述单词计数数据类型。类型字段token_count实际上是一个integer接受字符串值,对其进行分析,然后为字符串中的单词数量作为其值进行动态存储。如果不是很理解上面那句话的话,来让我们看个例子吧。示例1. 映射定义PUT examplePUT example/docs/_mapping{ "properties":{ "name":{ ...

2020-04-11 21:45:22 475

原创 Elasticsearch(024):es常见的字段映射类型之 连接类型(join type)
原力计划

join type概述出现的背景引出问题: “某头条新闻APP”新闻内容和新闻评论是1对多的关系?在ES6.X该如何存储、如何进行高效检索、聚合操作呢?1. ES6.X 新类型join产生背景Mysql中多表关联,我们可以通过left join 或者Join等实现ES5.X版本,借助父子文档实现多表关联,类似数据库中Join的功能;实现的核心是借助于ES5.X支持1个索引(index)...

2020-04-06 19:49:24 735

原创 Elasticsearch(023):es常见的字段映射类型之IP类型

概念es中拥有IP数据类型。一个ip字段可以索引/存储IPv4或 IPv6地址。示例我们先来看一个示例。1、映射创建PUT examplePUT example/docs/_mapping{ "properties":{ "id":{"type": "long"}, "browserName":{"type": "text"}, ...

2020-04-04 15:58:49 1672

原创 Elasticsearch(022):es常见的字段映射类型之地理形状类型(geo_shape、多边的复杂的地址形状)
原力计划

概念在上个小节,我们学习了geo_point的数据类型。这一小节我们来学习geo_shape数据类型,它有助于索引和搜索 任意地理形状,例如矩形和多边形。当正在索引的数据或正在执行的查询包含除点以外的其他形状时,应使用它。通过上面的概念描述,我们可以得出geo_point和geo_shape的最大区别是: geo_point表示一个点;geo_shape则表示有多个点连成线组成的形状。 学过...

2020-03-22 15:13:02 1425

原创 Elasticsearch(021):es常见的字段映射类型之地理点类型(geo-point)

概念大家平时肯定经常美团、饿了吗类似的外卖软件。她其中最常见的功能就是附件的商家的功能。她这功能就能借助es来实现。es中的地理位置数据类型:该类型的字段接受经纬度对,进行使用。常见的使用场景在边界框内,中心点一定距离内或多边形内找到地理点以地理位置或距中心点的距离汇总文档将距离整合到文档的相关性分数中按距离对文档进行排序示例使用1、映射定义示例如下。PUT example...

2020-03-15 14:17:48 761

原创 Elasticsearch(020):es常见的字段映射类型之二进制类型(binary)

概念二进制数据类型。该binary类型接受二进制值作为 Base64编码的字符串。该字段默认情况下不存储,并且不可搜索。该类型的字段可以作为对es的补充了解,实际开发中使用的较少。示例使用1、映射定义PUT examplePUT example/docs/_mapping{ "properties": { "id":{"type": "long"}, ...

2020-03-14 22:14:50 1102

原创 Elasticsearch(019):es常见的字段映射类型之数组类型(arrays)

在Elasticsearch中,没有专用的array数据类型。默认情况下,任何字段都可以包含零个或多个值,但是,数组中的所有值都必须具有相同的数据类型。这一点是区别于nested的,nested指的对象的集合。而arrays则是单一类型的数组集合而已。此外,不需要专门的类型类定义数组类型。例如:字符串数组 ["one", "two"]整数数组 [ 1,2]数组的数组:[ 1[ 2...

2020-03-08 20:13:55 2583 1

原创 Elasticsearch(018):es常见的字段映射类型之范围类型(range)

范围类型(range)是es中比较具有特色的数据类型。下面我们就先来看看官方对其的定义。定义数字范围类数据。主要类型及范围如下。数据范围类型的使用映射定义假设我们有一张会议表。我们知道实际中党政机关会议都有一个出席率的问题,需要出席率在某个点或某个区间内才能算作是有效的。所以我们的映射结构来了。示例如下。PUT examplePUT example/docs/_mapping{...

2020-03-07 19:27:11 2062

原创 Elasticsearch(017):es常见的字段映射类型之嵌套类型(nested)

es中的嵌套类型(nested)nested之前在对象类型(object)小节中,我们提到假如需要索引字段是对象数组,而不是对象,这时我们需要使用嵌套数据类型。形如下面的示例数据结构。{ "group" : "fans", "user" : [ { "first" : "John", "last" : "Smith" }, { ...

2020-03-01 17:16:21 3075

原创 Elasticsearch(016):es常见的字段映射类型之对象类型(object)

对象类型(object)JSON文档本质上是分层的:文档可能包含内部对象,而内部对象又可能包含内部对象本身。例如其下这个例子。PUT example/docs/1{ "region": "CN", "manager": { "age": 22, "name": { "first": "李", "l...

2020-02-29 18:54:18 2779 1

原创 Java基础之可设置过期时间的map
原力计划

Java基础之可设置过期时间的map一、技术背景在实际的项目开发中,我们经常会使用到缓存中间件(如redis、MemCache等)来帮助我们提高系统的可用性和健壮性。但是很多时候如果项目比较简单,就没有必要为了使用缓存而专门引入Redis等等中间件来加重系统的复杂性。那么Java本身有没有好用的轻量级的缓存组件呢。答案当然是有喽,而且方法不止一种。常见的解决方法有:ExpiringMap、...

2020-02-26 22:57:09 4262

原创 Elasticsearch(015):es常见的字段映射类型之数字类型(numeric)

简介es支持一下long, integer, short, byte, double, float, half_float, scaled_float常见的数字类型。示例#给example索引添加字段映射,默认docs类型PUT example/docs/_mapping{ "properties": { "id":{ "type":"long" },...

2020-02-15 18:13:00 1936

原创 Elasticsearch(014):es常见的字段映射类型之date(日期类型)

文章目录定义示例使用总结定义es中表示日期的类型。日期类型不用设置分词器。 通常日期类型的字段用于排序。示例使用#给example索引新增一个birthday字段,类型为date, 格式可以是yyyy-MM-dd 或 yyyy-MM-dd HH:mm:ss#添加日期类型的映射PUT test_label_supplier/docs/_mapping{ "properties":...

2020-02-09 16:40:48 3334

原创 Elasticsearch(013):es常见的字段映射类型之keyword(关键字)

文章目录一、概述二、使用上个小节我们了解了text全文本类型。下面我来学习es中另外一种重要的字符串类型keyword。一、概述关键字。关键字是个精准值,通常用于过滤、排序、参与聚合等。关键字不参与分词。二、使用上边介绍的text文本字段在映射时要设置分词器,keyword字段为关键字字段,通常搜索keyword是按照整体搜索,所以创建keyword字段的索引时是不进行分词的,比如:邮政...

2020-01-19 15:26:04 3416

Dbeaver 4.1 最后一个企业版 【解压即可使用】

Dbeaver 4.1企业版 绿色版 亲测可用。可以连接 MySQL Oracle Redis MongoDB Hbase DB2等基本上所有的数据库

2018-11-12

postman 7.3 win64.zip

官方原版 2019年8月最新版postman 位 官网下载巨慢!

2019-07-27

官方原版 redis-window-3.2(64位)【绿色版,解压即用】

官方原版 redis-window-3.2(64位),帮助那些在github上下载不下来的同学。象征性要1个币,拒绝伸手党。

2018-12-05

Git-2.15.1.2-64-bit-win【官方客戶端】

Git-2.15.1.2-64-bit-win【官方客戶端】,官网下载龟速,而且经常容易失败。希望能帮到大家。

2018-11-09

redis-desktop-manager-0.9.3.817【最后一个免费版本,安装后不要升级】

最后一个免费版本,安装后不要升级!最后一个免费版本,安装后不要升级!安装后不要升级!安装后不要升级!

2018-12-05

dbeaver-ee企业版 2019年5月最新版 安装包

dbeaver-ee企业版 2019年5月最新版 安装包。提供给大家下载!!!官网下载速度巨慢。官网下载速度巨慢。官网下载速度巨慢。

2019-05-06

rubyinstaller-devkit-2.5.1-1-x64.zip

ruby 2.5版本。官网下载的巨慢!!提供给大家。官网下载的巨慢!!官网下载的巨慢!!官网下载的巨慢!!官网下载的巨慢!!官网下载的巨慢!!

2019-07-13

《一步一步学Spring Boot 2微服务项目实战》完整版

《一步一步学Spring Boot 2微服务项目实战》完整版《一步一步学Spring Boot 2微服务项目实战》完整版

2018-10-26

Docker技术入门与实战

Docker技术入门与实战入门书籍和入门基础资料,帮助我们系统的认识和学习容器技术

2018-10-26

博客对应的源码示例ch2-1.zip

博客对应的源码示例

2019-09-18

空空如也

空空如也

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

TA关注的人 TA的粉丝

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