ES查询流程源码解析
一些基础知识
早先ES的HTTP协议支持还是依赖Jetty的,现在不管是Rest还是RPC都是直接基于Netty了。
另外值得一提的是,ES 是使用Google的Guice 进行模块管理,所以了解Guice的基本使用方式有助于你了解ES的代码组织。
ES 的启动类是 org.elasticsearch.bootstrap.Bootstrap。在这里进行一些配置和环境初始化后会启动org...
java集合遍历中的向下转型、泛型
java中集合存储字符串时,集合的get(i)方法是获取集合中的第i+1个元素,而这个元素是Object类型,而Object类型没有length()方法,遍历的时候如果直接.length()会报错。如果想使用字符串的方法,就必须把元素还原成字符(向下转型)。
/*
* 集合的遍历。其实就是依次获取集合中的每一个元素。
*
* Object[] toArray():把集合转成数组,可以实现集...
一个一站式流式处理云平台解决方案
随着互联网、IT、大数据等技术的爆发式发展,企业系统产生的大量爆发数据。对于保存在数据库中的业务数据,可以通过DBus数据总线+Wormhole流式处理平台的日志方式实时地无侵入同步和落地到任意sink端,提供下游系统分析使用;对于业务系统产生的日志数据,这些包含了业务高低峰、用户轨迹、系统异常/错误信息、调用链等诸多信息,也蕴含着无价的宝藏。一些公司通过埋点等方式和手段,往日志数据里输出他们想要...
ES aggregation详解
aggregation分类
aggregations —— 聚合,提供了一种基于查询条件来对数据进行分桶、计算的方法。有点类似于 SQL 中的 group by 再加一些函数方法的操作。
聚合可以嵌套,由此可以组成复杂的操作(Bucketing聚合可以包含sub-aggregation)。
聚合整体上可以分为 3 类:
1. Bucketing:桶分聚合:
此类聚合执行的是对文档分组的操...
ES Field Collapsing 字段折叠使用详解
在 Elasticsearch 5.x 有一个字段折叠(Field Collapsing,#22337)的功能非常有意思,在这里分享一下,
字段折叠是一个很有历史的需求了,可以看这个 issue,编号#256,最初是2010年7月提的issue,也是讨论最多的帖子之一(240+评论),熬了6年才支持的特性,你说牛不牛,哈哈。
目测该特性将于5.3发布,尝鲜地址:Elasticsearch-...
游戏背景音乐的未来是什么?
游戏背景音乐的未来是什么?在产品货币化上,订阅类服务可以值得关注,而在市场发展大方向上,移动电竞的产品趋势已经不可忽视。虽然免费增值以及其他多元化的商业模式已经取得了成功,“用户订阅”模式却才刚刚起步,一线的游戏厂商已经开始尝试这种模式,用户可以通过支付固定费用来获得额外或者独占的游戏内容,听到更多的游戏背景音乐。
另一个趋势是手游电竞化,在其他平台的游戏电竞化的程度越来越...
Elasticsearch Log GC 日志分析详解
如果你关注过 elasticsearch 的日志,可能会看到如下类似的内容:
[2018-06-30T17:57:23,848][WARN ][o.e.m.j.JvmGcMonitorService] [qoo--eS] [gc][228384] overhead, spent [2.2s] collecting in the last [2.3s]
[2018-06-30T17:57:29...
ES mapping 详解
1 mapping type
映射(mapping)
映射是定义一个文档以及其所包含的字段如何被存储和索引的方法。
例如,用映射来定义以下内容:
哪些 string 类型的 field 应当被当成当成 full-text 字段
哪些字段应该是数值类型、日期类型或者是地理位置信息
日期类型字段的格式是怎么样的
是否文档的所有字段都需要被索引到 _all 字段
动态增加的 field ...
ES Mapping、字段类型Field type详解
字段类型概述
一级分类 二级分类 具体类型
核心类型 字符串类型 string,text,keyword
整数类型 integer,long,short,byte
浮点类型 double,float,half_float,scaled_float
逻辑类型 boolean
日期类型 date
范围类型 range
二进制类型 binary
复合类型 数组类型 array
对象类型 obje...
最全PyCharm教程(1-15)【转】
最全Pycharm教程(1)——定制外观
原文:https://blog.csdn.net/u013088062/article/details/50100121
最全Pycharm教程(2)——代码风格
原文:https://blog.csdn.net/u013088062/article/details/50113593
最全Pycharm教程(3)——代码的调试、运行
原文:htt...
SQL left join 左表合并去重技巧总结
建表:
CREATE TABLE `table1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(60) DEFAULT NULL,
`age` varchar(200) DEFAULT NULL,
`sponsor_id` varchar(20) DEFAULT NULL COMMENT '业务发起人',
...
我的Python成长之路---Day10-函数的基本使用
一、函数的使用原则
函数的使用应该分为两个明确的阶段1. 定义阶段:只检测语法,不执行函数体代码
def func():
print('from func')2. 调用阶段:会触发函数体代码的执行
func()
函数使用的原则: 先定义后调用
示范一
def foo():
print('from foo')
bar() bar函...
我的Python成长之路---Day11-函数的使用及名称空间和作用域
1.昨天函数的参数内容的补充
命名关键字参数: 在定义函数时,*与**之间参数称之为命名关键字参数特点:
在调用函数时,命名关键字参数必须按照key=value的形式传值
def func(x,*,y=1,z): 在这里*后边的y和z都是命名关键字参数,y像默认参数一样被事先赋值好了,再实
参进行传值的时候可以不对y进行传值...
我的Python成长之路---Day12-装饰器
一、装饰器的基本知识
1 什么是装饰器
器=>工具
装饰=>指的是为被装饰对象添加新功能
所以装饰器就是为被装饰对象添加新功能的工具(目前为止学过的工具只有函数了,所以在这里是指用函数来实现装饰器的功能)
装饰器本身可以是任意可调用的对象=>函数
被装饰的对象也可以是任意可调用的对象=>函数
用装饰器的目的目标:写一个...
我的Python成长之路---Day13-迭代器和生成器
一、叠加多个装饰器
加载装饰器就是将原函数名偷梁换柱成了装饰器最内层那个wrapper函数
在加载完毕后,调用原函数其实就是在调用wrapper函数当一个被装饰的对象同时叠加多个装饰器时
装饰器的加载顺序是:自下而上
加载顺序,自下而上改变的是各个装饰器内func所表示的装饰器最内层的函数(不同的wrapper),这样的加载顺序在装饰器自上而下的执行顺序执行的时候就能够按照加载时候的按照一定的...
我的Python成长之路---Day14匿名函数和函数的递归
一、匿名函数
1. 什么是匿名函数
def定义的是有名函数: 有名函数特点是可以通过名字重复调用
def func(): #func=函数的内存地址
pass
匿名函数就是没有名字的函数:特点是只能再定义时使用一次
2. 为何要用匿名函数
强调:
...
windows下node和vue安装配置
下载
http://nodejs.cn/download/
选择windows的zip压缩版本版本
这里使用zip版本配置
解压
配置
将解压出来的根目录配置到系统变量里就行了
保存后,打开cmd看是否配置成功
输入node -v,npm -v应该有版本号,就说明配置成功了
这个时候还要替换默认的npm包为淘宝的npm
输入:npm install -g cnpm --registry=htt...
今日推荐
周排行