自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 问答 (10)
  • 收藏
  • 关注

原创 ES第十二天-ES写入原理

1、用户发出写入数据请求,写到内存Buffer中。内存Buffer会将写入的数据操作记录在translog中防止机器奔溃数据丢失。2、内存Buffer每隔一个周期会将内存Buffer中的数据生成一个index segment file(它记录了被删除了的文件),segment本身就是一个文件,从内存buffer写入到segment的过程就是一个写文件的过程。 操作系统层面对新生成的文件不会马上持久化到磁盘,而是写入到OS Cache中,这个写入是通过refresh操作写进去的,refresh的过程除了在.

2020-07-26 15:33:50 349

原创 ES第十一天-script

ES Scripts简介在ES 1.4.X-5.0版本,Groovy是作为ES的脚本语言。其他支持脚本:① expression:每个文档的开销较低:表达式的作用更多,可以非常快速地执行,甚至比编写native脚本还要快,支持javascript语法的子集:单个表达式。缺点:只能访问数字,布尔值,日期和geo_point字段,存储的字段不可用② mustache:提供模板参数化查询③ java在ES6之后,更多的是使用Painless作为脚本。Painless:Painless是一种专门用于E

2020-07-26 15:31:56 2460

原创 ES第十天-索引原理那些事

倒排索引和正排索引https://www.cnblogs.com/AndyStudy/p/9042032.html倒排索引倒排索引,就是把一个文档中的某个字段的内容进行分词,然后将这些分词去重唯一的形成一个列表,且每个分词都会记录着它所出现在的文档id号, 这样就会大大提高我们的查询效率正排索引正排索引和倒排索引恰恰相反,它记录的是每个doc中分别都有哪些分词,并且每个分词出现的次数。 这非常有利于我们做聚合查询。那聚合查询倒排索引不行吗?举个例子,如果需要统计“abc def” 的

2020-07-26 15:25:27 169

原创 ES第九天-分词,自定义分析器,中文分词器ik与基于中文分词器ik的全文检索

什么是分词?分词就是指将一个文本转化成一系列单词的过程,也叫文本分析,在Elasticsearch中称之为Analysis。举例:我是中国人 --> 我/是/中国人什么是分词器?1、顾名思义,分词器就是用来分词的(好像废话。2、除此之外,有时候感叹语言的博大精深,一种东西有许多种叫法,就从英文来说,monther,mum dady father 这种同义词,其实我们是期望用户不管是输入的哪个叫法,我们都可以给它匹配到,这,也就是分词器会做的一部分的工作,也就是语义同化,整体就是为了提高

2020-07-26 15:23:02 630 1

原创 ES第八天-mapping

es对于每个文档,每个字段都存在数据结构的映射关系的,那这个关系怎么查看呢?在老版中,查询mapping:GET /索引名称/_mapping/类型名称在ES6一个索引只允许一种type,ES7更是弱化了type的概念,官方更是提出在ES8将会移除。。因此,现在的mapping查询,一般这么查:GET /索引名称/_mappings查询product索引的映射:GET /product/_mappings{ "product" : { "mappings" : {

2020-07-08 13:53:56 267

原创 ES第七天-filter缓存原理

ES本身的数据就是使用倒排索引进行存储的,当查询来临时一一去eq倒排索引,然后直接得到所在的文档,这个过程本身就比mysql的like要快的多了。那filter的缓存是怎么做的呢?在进行若干次filter查询时,filter会维护一个二进制数组来保存查询的各个分词的在文档的匹配结果:0为未匹配上,1为匹上了,下次无需再通过倒排索引,直接通过关键词分词去得到匹配的文档就可以了,快上加快!且filter会优先过滤那些稀疏的数据(基本全是0的那些)。...

2020-07-08 13:44:52 1115 1

原创 ES第六天-深度分页和scroll search

深度分页(Deep paging)我们由前面知道,ES的数据是分片进行存储的,整体数据会被分布在不同的Primary分片上面,因此,如果一次比较深度的分页且排序的操作,成本将会比较大:假如用户要查询5001-5050条数据,按照价格由低到高进行排序,那么ES的查询会发生什么?因为数据是分片存储,因此需要每个分片都拿出自身的前5050条,然后整体排序后,取出5001-5050的数据,然后把无用的数据丢弃掉。这个成本随着数据量的增加将难以预估!因此建议:1、当你的数据超过1W,不要使用深度分页2、

2020-07-08 13:43:14 397

原创 ES第五天-查询语法

ES查询超时机制_search后面指定超时:GET /_search?timeout=1sES中的查询从es7开始就已经不建议使用type的概念,es8更是直接移除了type的概念,因此查询路径中我们之后都不带中间的type了。。Query_String查询全部product索引,有数据:GET /product/_search{ "took" : 0, "timed_out" : false, "_shards" : { "total" : 1, "su

2020-07-04 23:40:21 1491

空空如也

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

TA关注的人

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