总结一些ES不常用的filter

2020-09-29
阅读 8 分钟
3.3k
ES内置的token filter很多,大部分实际工作中都用不到。这段时间准备ES认证工程师的考试,备考的时候需要熟悉这些不常用的filter。ES官方对一些filter只是一笔带过,我就想着把备考的笔记整理成博客备忘,也希望能帮助到有这方面需求的人。

ES对磁盘的要求都有哪些,大部分你可能不知道

2020-09-14
阅读 2 分钟
3k
有一个问题被关注的比较少,就是ES对本地磁盘的占用情况。有人可能觉得这个问题的答案显而易见,不就是ES软件本身占用的空间,还有索引数据持久化占用的磁盘空间,另外就是一些日志了。

ES数组类型字段搜索以及数组空值搜索

2020-09-10
阅读 1 分钟
16.2k
es存储的某一个字段值为数组,现搜索的时候需要搜索出结果该字段值为空或包含某几个值的数据,该怎么写例如: "job_type" : ["12","49","67"] 或者 "job_type" : [ ]需要搜出job_type中包含49的或者为空的数据

ES系列之原理copy_to用好了这么香

2020-09-09
阅读 3 分钟
2.9k
Elasticsearch(以下简称ES)有个copy_to的功能,之前在一个项目中用到,感觉像是发现了一个神器。这个东西并不是像有些人说的是个语法糖。它用好了不但能提高检索的效率,还可以简化查询语句。

【netty in action】学习笔记-第四章

2020-09-09
阅读 10 分钟
1.5k
代码很好理解,为每一个新来的连接创建一个线程处理。这种方式有个比较大的问题是,客户端连接数受限于服务器所能承受的线程数。为了改进这个问题我们可以使用异步模式来重写这段代码,但是你会发现,几乎所有的代码都要重写。原生的OIO和NIO的API几乎完全不能复用。不信你看看下面这段NIO的代码,

【netty in action】学习笔记-第二章 编写你的第一个netty程序

2020-08-30
阅读 5 分钟
1.3k
【netty in action】学习笔记-第二章 编写你的第一个netty程序这一章简单粗暴,整个章节都是讲一个例子,例子很简单,但是麻雀虽小五脏俱全。通过这个示例你会对编写基于netty的应用程序有个直观的认识。我先上代码,后面再分析。先看看服务端的示例, {代码...} {代码...} 然后是客户端的示例, {代码...} {代码...} 这...

【netty in action】学习笔记-第一章 了解java NIO(2)

2020-08-29
阅读 3 分钟
1.6k
java nio有nio和nio2两个版本,后者只支持jdk7。而且java nio本身属于比较low level的api,有时候会遇到在linux运行良好但是在windows上却有问题。

【netty in action】学习笔记-第一章 了解java NIO(1)

2020-08-29
阅读 5 分钟
1.5k
【netty in action】学习笔记-第一章 了解java NIO(1)学习netty,java nio是基础,因为前者是对后者的封装,当然又不只是封装。随着学习的深入你会理解这句话的含义。下图是netty的架构图,让你对netty涉及的模型,传输,协议有个基本印象。netty的特性可以总结为一下几点:统计的API操作阻塞和非阻塞的socket接口易用...

讲得最明白的Elasticsearch源码调试环境搭建教程

2020-08-16
阅读 7 分钟
6.5k
使用elasticsearch(以下简称ES)也有挺长时间了,一直想找机会深入源码研究下。我看源码有个习惯,就是一定要运行起来。不是只把源码下载下来看看就行的。

几个小细节帮你提升java代码运行效率

2020-07-08
阅读 4 分钟
1.9k
千万不要小看代码细节的优化,有时候一个很小的优化就要你的代码执行效率数倍提升,如果这个优化点调用比较频繁,甚至有可能解决你整个系统的性能瓶颈。

spring data操作ES简直不能再香

2020-06-27
阅读 8 分钟
9.6k
Elasticsearch(以下简称ES)并不像mysql这么容易上手,很多java程序员会觉得ES的java客户端比较难以掌握,尽管ES 7.x官方推荐的high level client已经相对于早期的TransportClient好用很多了。

不要被kafka的异步模式欺骗了

2020-06-13
阅读 2 分钟
3.4k
kafka的生产者可以选择使用异步方式发送数据,所谓异步方式,就是我们调用 send() 方法,并指定一个回调函数, 服务器在返回响应时调用该函数。

给你总结几个ES下最容易踩的坑

2020-05-30
阅读 3 分钟
8.9k
我本人接触Elasticsearch(一下简称ES)有挺长一段时间了,本文结合自己的一些项目经验,给你总结几个实际项目中比较容易踩到的坑。希望读者能够避免犯这样的错误。

ES系列之利用filter让你的查询效率飞起来

2020-05-11
阅读 3 分钟
19.9k
Elasticsearch(下面简称ES)中的bool查询在业务中使用也是比较多的。在一些非实时的分页查询,导出的场景,我们经常使用bool查询组合各种查询条件。

ES主分片和副本数据大小不一样的情况

2020-05-05
阅读 2 分钟
4.2k
引言 很多认为Elasticsearch(以下简称ES),同一个分片的主分片和副本分片文档数量肯定是样的,数据大小也是一样的。 这个其实值说对了一半,文档数量是一阳台的没错,但是数据大小不一定一样。 产生这种现象的原因在于,主分片和副本分片的segment数量可能不一样。 正文 我们来看个示例。 以下的示例测试环境是ES 7.1.0...

再聊聊fastjson的一个漏洞

2020-05-03
阅读 3 分钟
3.6k
引言 我曾经写过一篇文章 fastjson远程代码执行漏洞问题分析 文章曾经比较详细分析了fastjson在1.2.24以及之前版本存在远程代码执行高危安全漏洞的问题。 本文则是针对另一个漏洞的介绍和分析。 官方对这次漏洞的说明是这样的: 近日,阿里云应急响应中心监测到fastjson爆出远程拒绝服务漏洞,攻击者在请求中构造特定jso...

关于kibana的可视化可能都在这篇文章里了

2020-05-02
阅读 3 分钟
6.9k
kibana是elasticsearch(以下简称ES)的可视化平台,笔者平时使用kibana的dev tools比较多,在这里可以更便捷的使用ES的各种命令,DSL查询语句等。

ES系列之原来查看文档数量有这么多姿势

2020-04-03
阅读 3 分钟
15.3k
1、引言 有人可能觉得,查看文档数量不是很简单吗?直接 {代码...} 不就可以了吗。 事实上远不止这么简单,比如嵌套文档的情况等。相信你看了我这篇文章之后你会感叹原来统计文档有这么多讲究啊。 2、正文 cat/count 首先是最常用的的方式,也是一种快速查询文档的优先推荐方式,cat count api我们使用kibana自带的电商...

ES系列之嵌套文档和父子文档

2020-03-26
阅读 10 分钟
10.3k
ElasticsSearch(以下简称ES)处理这种关系虽然不是特别擅长(相对于关系型数据库),因为ES和大多数 NoSQL 数据库类似,是扁平化的存储结构。索引是独立文档的集合体。不同的索引之间一般是没有关系的。

ES系列之一文带你避开日期类型存在的坑

2020-03-19
阅读 4 分钟
21.6k
时间相关的字段是ElasticsSearch(以下简称ES)最常用的字段了,几乎所有的索引应用场景都会有时间字段,一般用于基于时间范围的搜索,聚合等场景。但是由于时区的问题,相信很多小伙伴都踩到过时间字段的坑,笔者自己就踩过。

ES系列之原来ES的聚合统计不准确啊

2020-03-15
阅读 4 分钟
8.7k
本篇文章不是讲ElasticSearch(下面简称ES)聚合分析的基本概念和用法的,这些网上的资料很多,不清楚的可以自行查阅。 我下面聚合分析使用的数据都是kibana自带的,这样方便有些读者实际测试文中的示例。 基本概念 ES为了满足搜索的实时性,在聚合分析的一些场景会通过损失精准度的方式加快结果的返回。这其实ES在实时...

fastjson远程代码执行漏洞问题分析

2020-03-01
阅读 10 分钟
2.6k
背景 fastjson远程代码执行安全漏洞(以下简称RCE漏洞),最早是官方在2017年3月份发出的声明, security_update_20170315 没错,强如阿里这样的公司也会有漏洞。代码是人写的,有漏洞是难免的。关键是及时的修复。 声明中,官方指出: 最近发现fastjson在1.2.24以及之前版本存在远程代码执行高危安全漏洞,为了保证系统安...

带你了解下Kafka的客户端缓冲池技术

2020-02-18
阅读 9 分钟
2.6k
当我们应用程序调用kafka客户端 producer发送消息的时候,在kafka客户端内部,会把属于同一个topic分区的消息先汇总起来,形成一个batch。真正发往kafka服务器的消息都是以batch为单位的。如下图所示:

数据库连接池的原理没你想得这么复杂

2020-02-16
阅读 3 分钟
6.1k
数据库连接池和线程池等池技术存在的意义都是为了解决资源的重复利用问题。在计算机里,创建一个新的资源往往开销是非常大的。而池技术可以统一分配,管理某一类资源,它允许我们的程序可以重复的使用这个资源,只有在极端情况下(比如连接池满)才会创建新的资源。

你真的会用volatile吗

2020-02-09
阅读 5 分钟
2k
volatile的概念 或者说,volatile解决什么问题? 我自己的总结:volatile解决多线程下变量访问的内存可见性问题,用于线程间通信。 通信怎能理解呢,线程A写一个volatile变量,随后线程B读这个volatile变量,这个过程实质上是线程A通过主内存向线程B发送消息。 java语言标准规范对volatile的描述是这样的: The Java pro...

你真的了解LinkedBlockingQueue的put,add和offer的区别吗

2020-02-08
阅读 5 分钟
6.2k
LinkedBlockingQueue的put,add和offer这三个方法功能很相似,都是往队列尾部添加一个元素。既然都是同样的功能,为啥要有有三个方法呢?

mac环境使用Apache ab工具测试服务性能

2020-02-03
阅读 5 分钟
12.3k
ab is a tool for benchmarking your Apache Hypertext Transfer Protocol (HTTP) server. It is designed to give you an impression of how your current Apache installation performs. This especially shows you how many requests per second your Apache installation is capable of serving.

一文带你彻底弄懂ES中的doc_values和fielddata

2020-02-01
阅读 4 分钟
10.2k
这两个概念源于Elasticsearch(后面简称ES)除了强大的搜索功能外,还可以支持排序,聚合之类的操作。搜索需要用到倒排索引,而排序和聚合则需要使用 "正排索引"。说白了就是一句话,倒排索引的优势在于查找包含某个项的文档,而反过来确定哪些项在单个文档里并不高效。

kafka的一些常用工具

2020-01-29
阅读 2 分钟
1.5k
环境 以下的操作都是基于kafka_2.11-2.2.0 工具 新建topic {代码...} replication-factor: 指定副本数量 partitions:指定分区 查看topic列表 {代码...} 删除某个topic {代码...} 查看有哪些消费组 {代码...} 老版本是指定zk的地址,类似这样: {代码...} 新版本使用bootstrap,这个是区别。 查看某个消费组的详情 {代码...

关于Java使用groupingBy分组数据乱序问题

2020-01-28
阅读 3 分钟
4.3k
这是对最近做的一个项目,其中一个知识点的总结。 真实的业务场景就不说了,我来模拟下业务场景,足够说明问题就行了。 假设我有个对象,存储人员的基本信息,如下: {代码...} 添加一些测试数据, {代码...} 打印下看看, {代码...} {代码...} 我们可以看到,打印的顺序和我们添加的顺序是一样的。 现在我们有个需求,...