![](https://img-blog.csdnimg.cn/2020042011592052.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Elasticsearch
Elasticsearch相关知识
Micheal_yang0319
这个作者很懒,什么都没留下…
展开
-
Elasticsearch——分词器的内部组成到底是什么,以及内置分词器的介绍(学习笔记)
1、什么是分词器切分词语,normalization(提升recall召回率)给你一段句子,然后将这段句子拆分成一个一个的单个的单词,同时对每个单词进行normalization(时态转换,单复数转换)recall,召回率:搜索的时候,增加能够搜索到的结果的数量character filter:在一段文本进行分词之前,先进行预处理,比如说最常见的就是,过滤html标签(<span>hello<span> --> hello),& --> and(原创 2020-07-14 20:13:30 · 157 阅读 · 0 评论 -
Elasticsearch-初识搜索引擎_multi-index(学习笔记)
multi-index和multi-type搜索模式如何一次性搜索多个index和多个type下的数据/_search:所有索引,所有type下的所有数据都搜索出来/index1/_search:指定一个index,搜索其下所有type的数据/index1,index2/_search:同时搜索两个index下的数据/*1,*2/_search:按照通配符去匹配多个索引/index1/type1/_search:搜索一个index下指定的type的数据/index1/type1,type2/原创 2020-07-08 20:18:09 · 193 阅读 · 0 评论 -
Elasticsearch-初识搜索引擎_search结果深入解析(学习笔记)
发送一个搜索请求,返回值如下:GET /_search{ "took": 6, "timed_out": false, "_shards": { "total": 6, "successful": 6, "failed": 0 }, "hits": { "total": 10, "max_score": 1, "hits": [ { "_index": ".kibana", "_type":...原创 2020-07-08 20:02:47 · 191 阅读 · 0 评论 -
Elasticsearch-bulk api的奇特json格式与底层性能优化关系(学习笔记)
bulk api奇特的json格式:{"action": {"meta"}}\n{"data"}\n{"action": {"meta"}}\n{"data"}\n标准的jsonArray格式:[{ "action": { }, "data": { }}]1、bulk中的每个操作都可能要转发到不同的node的shard去执行2、如果采用比较良好的json数组格式,允许任意的换行,整个可读性非常棒,读起来很方便,es拿到那种标准格式的json串以后,要按照下述流程去进...原创 2020-07-08 19:36:14 · 181 阅读 · 0 评论 -
Elasticsearch-document查询内部原理图解揭秘(学习笔记)
1、客户端发送请求到任意一个node,该node成为coordinate node(协调节点);2、coordinate node对document进行路由,将请求转发到对应的node,此时会用round-robin随机轮询算法,在primary shard以及其所有的replica中随机选择一个,让读请求负载均衡;3、接收请求的node返回document给coordinate node;4、coordinate node返回document给客户端;5、特殊情况:document如果还在建立索引原创 2020-06-26 22:32:37 · 155 阅读 · 0 评论 -
Elasticsearch-写一致性原理以及quorum机制深入剖析(学习笔记)
(1)写一致性consistency有以下几种模式:one(primary shard),all(all shard),quorum(default)我们在发送任何一个增删改查操作的时候,比如说put /index/tyep/id,都可以带上一个consistency参数,指明我们想要写的一致性是什么例如:put /index/type/id?consistency=quorumone:要求我们这个写操作,只要有一个primarily shard是active活跃可用的,就可以执行;all:要求我们原创 2020-06-26 22:10:14 · 258 阅读 · 0 评论 -
Elasticsearch-document增删改内部实现原理(学习笔记)
(1)客户端选择一个node发送请求过去,这个node就是coordinating node(协调节点);(2)coordinating node,对document进行路由,将请求转发给对应的node(有primary shard);(3)实际的node上的primary shard处理请求,然后将数据同步到replica node;(4)coordinating node,如果发现primary node和所有replica node都搞定之后,就返回响应结果给客户端。...原创 2020-06-26 16:45:50 · 108 阅读 · 0 评论 -
Elasticsearch-深度剖析document数据路由原理(学习笔记)
1、document路由到shard上是什么意思? 一个index的数据会被分为多片,每片都在一个shard中。所以说一个document只能存在于一个shard中。当客户端创建document的时候,es此时就需要决定这个document是放在这个index的哪个shard上。这个过程就称之为document routing,数据路由。2、路由算法:shard = hash(routing) % number_of_primary_shards 举个例子,一个index有3个pr...原创 2020-05-09 20:53:21 · 185 阅读 · 0 评论 -
Elasticsearch-bulk批量增删改(学习笔记)
1、bulk语法POST /_bulk{ "delete": { "_index": "test_index", "_type": "test_type", "_id": "3" }}{ "create": { "_index": "test_index", "_type": "test_type", "_id": "12" }}{ "test_field": "test12...原创 2020-05-05 21:03:15 · 316 阅读 · 0 评论 -
Elasticsearch-mget批量查询api(学习笔记)
1、批量查询的好处一条一条的查询,如果要查询100条数据,那么就要发送100次网络请求,这个开销还是很大的如果进行批量查询的话,查询100条数据,就只要发送1次网络请求,网络请求的性能开销缩减100倍2、mget的语法(1)一条一条的查询GET /test_index/test_type/1GET /test_index/test_type/2(2)mget批量查询...原创 2020-05-05 20:30:11 · 188 阅读 · 0 评论 -
Elasticsearch-剖析悲观锁与乐观锁两种并发控制方案(学习笔记)
1、悲观锁并发控制方案 常见于关系型数据库中,比如MySQL。悲观锁并发控制方案,就是在各种情况下都给数据上锁。上锁之后就只有一个线程可以操作这条数据了,当然,不同的场景下上的锁都不同,有行级锁、表级锁、读锁、写锁。2、乐观锁并发控制方案es使用的是乐观锁,乐观锁是不加锁的每个线程都可以任意操作,此种控制方案在写数据的时候会判断当前数据的版本号是否与es中的版本号一致,如果版...原创 2020-04-24 20:38:14 · 251 阅读 · 0 评论 -
Elasticsearch-document的全量替换、强制创建以及lazy delete机制(学习笔记)
1、document的全量替换(1)语法与创建文档一样,如果document id不存在,那么就是创建;如果document id已经存在,那么就是全量替换操作,替换document的json串内容。(2)document是不可变的,如果要修改document的内容,第一种方式就是全量替换,直接对document重新建立索引,替换里面的所有内容。(3)es会将老的document标记为del...原创 2020-04-24 19:47:18 · 130 阅读 · 0 评论 -
Elasticsearch-document的_source元数据以及定制返回结果解析(学习笔记)
1、_source元数据PUT /test_index/test_type/1{ "test_field1": "test field1", "test_field2": "test field2"}GET /test_index/test_type/1{ "_index": "test_index", "_type": "test_type", "_id":...原创 2020-04-21 16:19:24 · 236 阅读 · 0 评论 -
Elasticsearch-document id的手动指定与自动生成两种方式解析(学习笔记)
1、手动指定document id(1)根据应用情况来说,是否满足手动指定document id的前提: 一般来说,是从某些其他的系统中,导入一些数据到es时会采取这种方式,就是使用系统中已有数据的唯一标识,作为es中document的id。举个例子,比如说现在开发一个电商网站,做搜索功能,或者是OA系统,做员工检索功能。这个时候,数据首先会在网站系统或者IT系统内部的数据库中...原创 2020-04-21 16:06:18 · 737 阅读 · 0 评论 -
Elasticsearch-初步解析document的核心元数据(学习笔记)
初步解析document的核心元数据1、_index元数据(1)代表一个document存放在哪个index中;(2)类似的数据存放在一个索引,非类似的数据存放在不同的索引:product index(包含了所有的商品),sales index(包含了所有商品销售数据),inventory index(包含了所有库存相关的数据)。如果你把比如product,sales,inventory全部...原创 2020-04-21 15:01:36 · 156 阅读 · 0 评论 -
Elasticsearch容错机制:master选举,replica容错,数据恢复(学习笔记)
(1)Elasticsearch集群有9个shard,3个node;(2)如果master节点宕机,集群自动master选举,集群状态此时为red;(3)replica容错:新的master将replica提升为primary shard。此时集群状态变为yellow;(4)重启宕机node,master copy replica到该node,使用原有的shard并同步宕机后的修改。此时集群...原创 2020-04-21 14:09:53 · 192 阅读 · 0 评论 -
Elasticsearch横向扩容过程、如何超出扩容极限、如何提升容错性(学习笔记)
Elasticsearch横向扩容过程,如何超出扩容极限,如何提升容错性(1)primary&replica自动负载均衡,6个shard,3 primary,3 replica。(2)每个node有更少的shard,IO/CPU/Memory资源给每个shard分配更多,每个shard性能更好。(3)扩容极限,6个shard(3 primary,3 replica),最多扩容到6台机...原创 2020-04-21 10:50:42 · 182 阅读 · 0 评论 -
Elasticsearch-shard&replica机制(学习笔记)
1、shard&replica机制(1)index包含多个shard。(2)每个shard都是一个最小工作单元,承载部分数据,是一个lucene实例,有完整的建立索引和处理请求的能力。(3)增减节点时,shard会自动在nodes中负载均衡。(4)primary shard和replica shard;每个document肯定只存在某一个primary shard以及对应的repl...原创 2020-04-20 20:10:50 · 181 阅读 · 0 评论 -
Elasticsearch的基础分布式架构(学习笔记)
1、Elasticsearch对复杂分布式机制的透明隐藏特性 Elasticserch是一套分布式的系统,分布式是为了应对大数据量隐藏了复杂的分布式机制。 分片机制:当我们向Elasticsearch中插入数据时,并不关心数据怎么进行分片,数据存储到哪个shard中去了。 cluster discovery:集群发现机制,当我们加入一个节点之后,集群会自动发现,并将节点加入...原创 2020-04-20 20:08:54 · 161 阅读 · 0 评论 -
Elasticsearch-嵌套聚合,下钻分析,聚合分析(学习笔记)
1、聚合分析# 首先执行PUT /ecommerce/_mapping/product{ "properties": { "tags":{ "type": "text", "fielddata": true } }}#对商品的tags进行聚合分析GET /ecommerce/product/_search{ "size": 0,...原创 2020-04-20 17:30:09 · 261 阅读 · 1 评论 -
Elasticsearch-多种搜索方式(学习笔记)
1、query string search#搜索全部#GET /index/type/_searchGET /ecommerce/product/_search#返回值{ "took": 11, "timed_out": false, "_shards": { "total": 5, "successful": 5, "failed": 0 ...原创 2020-04-20 15:28:30 · 165 阅读 · 0 评论 -
Elasticsearch-集群健康检查、文档CRUD(学习笔记)
1、查看集群健康状态GET _cat/health?v#返回值epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent1587351378 22:56...原创 2020-04-20 12:06:35 · 214 阅读 · 0 评论