Elasticsearch
文章平均质量分 57
yshir-phper
这个作者很懒,什么都没留下…
展开
-
ElasticSearch最佳入门实践(二十一)partial update实现原理
partial update不需要应用程序查询document数据,可以直接修改field并传递到es进行更新。(1)应用程序先发起一个get请求,获取到document,展示到前台界面,供用户查看和修改。(5)es将老的document标记为deleted,然后重新创建一个新的document。(3)后台代码,会将用户修改的数据在内存中进行执行,然后封装好修改后的全量数据。PUT /index/type/id,创建文档&替换文档,就是一样的语法。(4)然后发送PUT请求,到es中,进行全量替换。转载 2022-09-07 14:31:36 · 239 阅读 · 0 评论 -
ElasticSearch最佳入门实践(二十)基于external version进行乐观锁并发控制
es提供了一个feature,就是说,你可以不用它提供的内部_version版本号来进行并发控制,可以基于你自己维护的一个版本号来进行并发控制。举个列子,假如你的数据在mysql里也有一份,然后你的应用系统本身就维护了一个版本号,无论是什么自己生成的,还是程序控制的。这个时候,你进行乐观锁并发控制的时候,可能并不是想要用es内部的_version来进行控制,而是用你自己维护的那个version来进行控制。es内部?version=1自定?转载 2022-09-07 10:03:34 · 211 阅读 · 0 评论 -
ElasticSearch最佳入门实践(十九)基于_version进行乐观锁并发控制
4、另外一个客户端,尝试基于version=1的数据去进行修改,同样带上version版本号,进行。同时带上数据的版本号,确保说,es中的数据的版本号,跟客户端中的数据的版本号是相同的,才能修改。问题之后,重新获取并尝试正确的完成更新。5、在乐观锁成功阻止。转载 2022-09-07 10:03:22 · 111 阅读 · 0 评论 -
ElasticSearch最佳入门实践(十八)Elasticsearch内部如何基于_version进行乐观锁并发控制
version_type=external,唯一的区别在于,_version,只有当你提供的version与es中的_version一模一样的时候,才可以进行修改,只要不一样,就报错;version=1,才能更新成功 es,_version=1,?在es后台,很多的这种类似的replica同步请求,都是多线程异步的,也就是说多个修改请求之间,是乱序的,没有顺序,可能先改的后到,后修改的先到。如果真的发生了后修改的数据先到,先修改的数据后到,es内部的机制是会先把后修改先到的数据保存,并且把版本号+1。转载 2022-09-07 10:03:11 · 562 阅读 · 0 评论 -
ElasticSearch最佳入门实践(十七)剖析Elasticsearch并发冲突问题以及控制方案
乐观锁状态下,用户B会去校验 ES 中的的这条数据版本号和自身的是否一致,如果不一致,则不会提交,会重新去 ES 中获取最新的数据 99 件,再次减一,变为 98。然后两个用户同时提交订单,但是总有一个线程是先到的,如果线程A先到,就会先将库存 -1 设置为99件。此时用户B突然就可以动弹了,这个时候获取到的商品库存为 99 件,当用户B购买商品后,库存变为 98。当用户A读取该商品数据的时候,会同时给数据库这一行加锁,而当用户B也读取该商品数据的时候,这个时候会被卡出处于等待状态。转载 2022-09-07 10:03:03 · 349 阅读 · 0 评论 -
ElasticSearch最佳入门实践(十六)_document的全量替换、强制创建以及 lazy delete 机制
(3)es会将老的document标记为deleted,然后新增我们给定的一个document,当我们创建越来越多的document的时候,es会在适当的时机在后台自动删除标记为deleted的document。(2)document是不可变的,如果要修改document的内容,第一种方式就是全量替换,直接对document重新建立索引,替换里面所有的内容。(1)创建文档与全量替换的语法是一样的,有时我们只是想新建文档,不想替换文档,如果强制进行创建呢?转载 2022-09-07 10:02:53 · 159 阅读 · 0 评论 -
ElasticSearch最佳入门实践(十五)_document的_source元数据以及定制返回结果解析
index元数据_type元数据_id元数据。转载 2022-09-06 11:26:14 · 138 阅读 · 0 评论 -
ElasticSearch最佳入门实践(十四)_document id 的手动指定与自动生成两种方式解析
1、手动指定document id根据应用情况来说,是否满足手动指定document id的前提:一般来说,是从某些其他的系统中,导入一些数据到es时,会采取这种方式,就是使用系统中已有数据的唯一标识,作为es中document的id。举个例子,比如说,我们现在在开发一个电商网站,做搜索功能,或者是OA系统,做员工检索功能。这个时候,数据首先会在网站系统或者IT系统内部的数据库中,会先有一份,此时就肯定会有一个数据库的primary key(自增长,UUID,或者是业务编号)。转载 2022-09-06 10:32:33 · 1370 阅读 · 0 评论 -
ElasticSearch最佳入门实践(十三)初步解析document的核心元数据以及剖析index创建反例
如果我们把很多数据都放到一个索引:product index(包含了所有的商品),sales index(包含了所有的商品销售数据),inventory index(包含了所有库存相关的数据)。(2)一个索引通常会划分为多个type,逻辑上对index中有些许不同的几类数据进行分类:因为一批相同的数据,可能有很多相同的fields,但是还是可能会有一些轻微的不同,可能会有少数fields是不一样的,举个例子,就比如说,商品,可能划分为电子商品,生鲜商品,日化商品,等等。1、_index元数据。转载 2022-09-06 09:10:20 · 86 阅读 · 0 评论 -
ElasticSearch最佳入门实践(十二)Elasticsearch容错机制:master选举,replica容错,数据恢复
Elasticsearch容错机制:master选举,replica容错,数据恢复转载 2022-09-06 10:27:58 · 175 阅读 · 0 评论 -
ElasticSearch最佳入门实践(十一)分布式原理 横向扩容过程,如何超出扩容极限,以及如何提升容错性
(5)3台机器下,9个shard(3 primary,6 replica),资源更少,但是容错性更好,最多容纳2台机器宕机,6个shard只能容纳1台机器宕机。(4)超出扩容极限,动态修改replica数量,9个shard(3primary,6 replica),扩容到9台机器,比3台机器时,拥有3倍的读吞吐量。(3)扩容的极限,6个shard(3 primary,3 replica),最多扩容到6台机器,每个shard可以占用单台服务器的所有资源,性能最好。(1)假设 9 shard,3 node。转载 2022-09-06 10:01:32 · 185 阅读 · 0 评论 -
ElasticSearch最佳入门实践(十)2个 node 环境下 replica shard 是如何分配的
ElasticSearch最佳入门实践(十)2个 node 环境下 replica shard 是如何分配的转载 2022-09-05 13:41:10 · 67 阅读 · 0 评论 -
ElasticSearch最佳入门实践(九)shard & replica 机制梳理以及单 node 环境中创建 index
(8)primary shard 不能和自己的 replica shard 放在同一个节点上(否则节点宕机,primary shard和副本都丢失,起不到容错的作用),但是可以和其他 primary shard 的 replica shard 放在同一个节点上。(7)primary shard 的默认数量是5,replica 默认是1,默认有10个shard,5个primary shard,5个replica shard。(3)增减节点时,shard会自动在nodes中负载均衡。转载 2022-09-05 13:40:35 · 171 阅读 · 0 评论 -
ElasticSearch最佳入门实践(八)ElasticSearch基础分布式架构基础
垂直扩容:采购更强大的服务器,成本非常高昂,而且会有瓶颈,假设世界上最强大的服务器容量就是10T,但是当你的总数据量达到5000T的时候,你要采购多少台最强大的服务器啊。shard负载均衡(举例,假设现在有3个节点,总共有25个shard要分配到3个节点上去,es会自动进行均匀分配,以保持每个节点的均衡的读写负载请求)水平扩容:业界经常采用的方案,采购越来越多的普通服务器,性能比较一般,但是很多普通服务器组织在一起,就能构成强大的计算和存储能力。(1)节点对等,每个节点都能接收所有的请求。转载 2022-09-05 13:40:01 · 153 阅读 · 0 评论 -
ElasticSearch最佳入门实践(七)案例实战之电商网站商品管理:嵌套聚合,下钻分析,聚合分析
新增一个商品便于分析{]}转载 2022-09-05 13:39:42 · 146 阅读 · 0 评论 -
ElasticSearch最佳入门实践(六)案例实战之电商网站商品管理:多种搜索方式
跟全文检索相对应,相反,全文检索会将输入的搜索串拆解开来,去倒排索引里面去一一匹配,只要能匹配上任意一个拆解后的单词,就可以作为结果返回。hits.max_score:score的含义,就是document对于一个search的相关度的匹配分数,越相关,就越匹配,分数也高。phrase search,要求输入的搜索串,必须在指定的字段文本中,完全包含一模一样的,才可以算匹配,才能作为结果返回。分页查询商品,总共3条商品,假设每页就显示1条商品,现在显示第2页,所以就查出来第2个商品。转载 2022-09-05 13:39:17 · 283 阅读 · 0 评论 -
ElasticSearch最佳入门实践(五)案例实战之电商网站商品管理:集群健康检查,文档CRUD
1、document数据格式2、电商网站商品管理案例:背景介绍3、简单的集群管理 简单的索引操作创建 格式案例 创建案例 检索 案例 修改商品 替换文档案例 修改商品 更新文档转载 2022-09-05 13:38:49 · 180 阅读 · 0 评论 -
ElasticSearch最佳入门实践(四)在windows上安装和启动 ElasticSearch
7、启动Kibana:bin\kibana.bat。转载 2022-09-05 13:38:13 · 624 阅读 · 0 评论 -
ElasticSearch最佳入门实践(三)ElasticSearch核心概念:NRT、索引、分片、副本
primary shard(建立索引时一次设置,不能修改,默认5个),replica shard(随时修改数量,默认1个),默认每个索引10个shard,5个primary shard,5个replica shard,最小的高可用配置,是2台服务器。6、Type:类型,每个索引里都可以有一个或多个type,type是index中的一个逻辑数据分类,一个type下的document,都有相同的field,比如博客系统,有一个索引,可以定义用户数据type,博客数据type,评论数据type。转载 2022-09-05 13:36:34 · 116 阅读 · 0 评论 -
ElasticSearch最佳入门实践(二)Elasticsearch的功能、适用场景以及特点
Elasticsearch的特点,跟其他类似的东西不同的地方在哪里。转载 2022-09-05 13:35:20 · 138 阅读 · 0 评论 -
ElasticSearch最佳入门实践(一)什么是ElasticSearch
百度:比如我们想搜索任何信息的时候,就会上百度搜索一下。例如找一部自己喜欢的电影,或者找一本自己喜欢的书。但是百度!= 搜索垂直搜索(也就是站内搜索)互联网搜索:电商网站、招聘网站、新闻资讯、各类APPIT系统的搜索:OA软件、办公自动化软件、会议管理、日程管理、员工管理。搜索“张三”,“李四”,“李四儿”搜索就是在任何场景下找到你想要的信息如果用我们使用lucene封装了搜索引擎的功能,部署在单台机器上。假设磁盘就500G,当数据量很大超过了500G,这时候在一台机器上是放不下的。转载 2022-09-05 13:34:56 · 107 阅读 · 0 评论 -
windows环境 安装es (ElasticSearch)搜索引擎
在 es 目录中的 \plugins 目录下新建 ik 目录,然后将下载完成的 elasticsearch-analysis-ik 解压至此目录下。2.2 双击bin目录下的【elasticsearch.bat】即可启动es,默认启动后占用9200端口。在bin目录下,双击【kibana.bat】,启动Kibana。安装es之前确保系统已安装JDK(需要JDK1.8以上版本)2.1 下载es后,完成解压。启动后,通过浏览器访问 【完成后重启es,即可应用ik分词器。】即可访问kibana。转载 2022-09-06 09:08:37 · 3161 阅读 · 2 评论