es
文章平均质量分 89
小李哥编程
这个作者很懒,什么都没留下…
展开
-
Elasticsearch学习-文档更新,可能存在的坑
用过ES的老铁都知道,ES中的文档是无法直接更新的,我们通常说的对ES中的文档进行更新,实际上是对指定的文档进行重新索引,也就是将原有的文档进行标记删除,然后再重新索引一个新的文档。部分更新的方式中,客户端只提交了需要更新的内容,但是在ES的分片内部,仍然会根据文档id取出整个文档,然后将需要更新的内容更新到文档中,最后将新的文档索引到索引中,流程和全量更新是相同的,只是这个过程发生在分片内部,减少了一次网络IO,而且更新请求中只有需要更新的内容,数据量比较小,因此网络IO对性能影响比较小。...原创 2022-08-14 18:03:16 · 2094 阅读 · 0 评论 -
Elasticsearch学习-ES中动态映射有什么用
在系统开发过程中,,随着业务不断发展和需求的不断迭代,业务系统中的原有数据表结构无法满足现有功能需求,这个时候常用的做法就是修改表结构,增加或者修改原有schema中的字段类型。与传统关系型数据相比,ES有一个明显的差异,就是可以在原有索引中添加新的字段数据,而无需做其他类似schema的调整。在关系型数据库中,表结构定义完毕后,只能在表中插入schema中指定的字段信息。而在ES中是可以打破这个限制的。...原创 2022-07-23 21:53:27 · 669 阅读 · 0 评论 -
Elasticsearch学习-ES中的类型和映射
对于第一个问题,如果在ES中不同类型中有同名字段,且类型不同话,其实ES是不允许的,这样的配置会报错,例如在上文data索引中,在transactions和people类型中如果都定义了length字段,在people类型中length字段类型为string,在transactions类型中length字段类型为long,那么映射到Lucene中的话,就会变成有两个length字段,且类型不同,在进行文档索引中,就会产生歧义。2.ES中每次索引一种类型的数据,在Lucene中会造成其他类型字段空间浪费。..原创 2022-07-23 18:52:10 · 882 阅读 · 0 评论 -
Elasticsearch学习-ES中文档查询流程是怎样的?
在ES中查询分为两类:1.基于文档ID查询,2.按照非文档ID查询。当执行如下查询时:ES在执行上述查询的具体过程如下:1、客户端向 Node 1 发送获取请求,此时Node1为协调者节点。2、协调者节点使用文档的 _id 来确定文档属于分片 0 。分片 0 的副本分片存在于所有的三个节点上。 在这种情况下,它将请求转发到 Node 2 。3、Node 2 将文档返回给 Node 1 ,然后将文档返回给客户端。在处理读取请求时,协调结点在每次请求的时候都会通过轮询所有的副本分片来达到负载均衡。在文档被检索原创 2022-06-19 17:52:42 · 2103 阅读 · 0 评论 -
Elasticsearch学习-ES中常用的检索方式
在ES中最重要的操作就是查询,上篇文章"ES中文档的基本操作"中,我们讨论了ES中对文档的一些常用操作,对于查询只是简单的描述了使用文档id进行查询的场景,然而在工作过程中,更多的场景是一些复杂的条件检索。接下来的这篇文章,我们就一起学习一下ES中的一些常用的检索方式。ES相比其他数据库,比较擅长的是全文检索,在介绍全文检索前,我们有必要了解一下什么是全文,以及和全文相对应的精确值。精确值:如它们听起来那样精确。例如日期或者用户 ID,但字符串也可以表示精确值,例如用户名或邮箱地址。对于精确值来说,Foo原创 2022-06-12 19:20:11 · 2198 阅读 · 0 评论 -
Elasticsearch学习-ES中文档的基本操作
文档是索引中数据的基本单位,类似于关系型数据库中的一条记录,文档的在ES中以json的数据格式存储。当一条记录存储到ES中后,ES会为每个文档添加一些除文档内容之外的其他属性信息,用来描述该文档。常用的以用来描述文档的属性有一下这些:_index:表示文档存放在哪个索引中。索引我们大家都知道,它是一类结构相同的文档集合。看过前面文章"Elasticsearch学习-ES中的一些组件介绍"的老铁都知道,文档其实是被存储在分片中的,而索引仅仅是逻辑上的命名空间, 这个命名空间由一个或者多个分片组合在一起。 然而原创 2022-06-04 18:20:30 · 7043 阅读 · 0 评论 -
Elasticsearch学习-ES中的一些组件介绍
ES是什么Elastic Search简称ES, 是一个高性能的全文检索框架。它提供存储、搜索、大数据准实时分析等。一般用于提供复杂搜索的服务。ES是基于Lucene进行二次开发的一个框架,首先Lucene是一个类库,业务系统中想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,除此之外,Lucene本身比较复杂,你需要深入了解检索的相关知识来理解它是如何工作的,而经过ES进行二次开发后,将这些复杂专业的细节内容进行了封装,可以让使用者以较低的学习成本来使用ES。说了以上的介绍,你原创 2022-05-29 19:09:46 · 3732 阅读 · 0 评论