ElasticSearch基础知识体系(一)

映射、文档、类型、索引

映射:类型中的字段的定义。如name字段定义为String。 —> 类似于数据库表字段的类型
文档:包含若干取值的一行。文档是层次型、无模式的。并非所有的文档都需要具有相同的字段,他们不是受限于同一个模式。 —> 类时于数据库表的行
类型:文档的逻辑容器,类似于表格是行的容器。 —> 类似于 数据库 表。
索引:映射类型的容器,独立大量的文档集合。 ----> 类似于 数据库中的库(模式)。
每个索引有一个refresh_interval的设置,定义了新近索引的文档对于搜索可见的时间间隔。从性能的角度来看,刷新操作的代价是昂贵的,这也是为什么更新只是偶尔进行。默认是每秒更新一次,而不是每来一篇新的文档就更新一次。elasticSearch被称为准实时的,就是指这种刷新过程。
在这里插入图片描述

节点和分片

脑裂(集群中节点间无法通信)需要在集群中避免,过半机制就是解决这个问题的。
默认情况下,每个索引都有5个主要分片组成,而每份主要分片又有一个副本,一共10个分片。

分片是ElasticSearch将数据从一个节点迁移到另一个节点的最小单位。
一个节点就是一个ElasticSearch的实例。每一份分片都至少有一个副本分片。
分片是ElasticSearch所处理的最小单元。一份分片是Lucene的索引:包含倒排索引的文件目录。
ElasticSearch索引和Lucene索引:
ElasticSearch索引被分解为多块:分片。
一份分片是一个Lucene索引,所以一个ElasticSearch索引是由多个Lucene索引组成。
在这里插入图片描述

ElasticSearh索引由一个或多个主分片以及零个或多个副本分片构成。
词条字典将每个词条和包含该词条的文档映射起来。搜索的时候没有必要为了某个词条而扫描所有的文档,而是根据这个字典快速的识别匹配的文档。
词频使得ElasticSearch可以快速地获取某篇文档中某个词条出现的次数。词条出现次数越高,得分越高,排序越在前面。默认的排序算法:TF-IDF。
副本分片可以在运行时候进行添加和移除,而主分片不可以。

如何搜索?
接受索引的ElasticSearch节点首先选择文档索引到哪个分片。默认地,文档在分片中均匀分布:对于每篇文档,分片是通过其ID字符串的散列决定的。每份分片拥有相同的散列范围,接受新文档的机会均等。一旦目标分片确定,接受请求的节点将文档转发到该分片所在的节点。随后,索引操作在所有目标的副本分片中进行。在所有可用副本分片完成文档的索引后,索引命令就会成功返回。
在搜索的时候,接受请求的节点将请求转发到一组包含所有的数据分片。ElasticSearch使用轮询机制选择可用的分片(主分片或副本分片),并将请求转发过去。
在这里插入图片描述
在这里插入图片描述
参考书籍:《ElasticSearch in Action》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值