es

Cluster包含多个node,Indices不应该理解成动词索引,Indices可理解成关系数据库中的databases,Indices可包含多个Index,Index对应关系数据库中的database,它是用来存储相关文档的。

Elasticsearch与关系数据的类比对应关系如下:

Relational DB ⇒ Databases ⇒ Tables ⇒ Rows ⇒ Columns

Elasticsearch ⇒ Indices ⇒ Types ⇒ Documents ⇒ Fields

这里的document的可以理解为一个JSON序列对象。每个document可包含多个field。

再来说说Shard,每个Index(对应Database)包含多个Shard,默认是5个,分散在不同的Node上,但不会存在两个相同的Shard存在一个Node上,这样就没有备份的意义了。Shard是一个最小的Lucene索引单元。

当来一个document的时候,Elasticsearch通过对docid进行hash来确定其放在哪个shard上面,然后在shard上面进行索引存储。

replicas就是备份,Elasticsearch采用的是Push Replication模式,当你往 master主分片上面索引一个文档,该分片会复制该文档(document)到剩下的所有 replica副本分片中,这些分片也会索引这个文档。我个人觉得这种模式很nice,有些时候对于一个document的进行索引可能生成很大的索引文件,会很占带宽,而只传输原始文件会好很多。

当进行查询是,如果提供了查询的DocID,Elasticsearch通过hash就知道Doc存在哪个shard上面,再通过routing table查询就知道再哪个node上面,让后去node上面去取就好了。如果不提供DocID,那么Elasticsearch会在该Index(indics)shards所在的所有node上执行搜索预警,然后返回搜索结果,由coordinating node gather之后返回给用户。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • ES: ElasticSearch(简称ES):是一个基于Lucene构建的开源、分布式、RESTful的全文本搜...
    我的楼兰0909阅读 1,650评论 0赞 0
  • 为什么要用ES集群? Elasticsearch(ES)是一个基于Lucene构建的开源、分布式、RESTful接...
    hellokitty小丸子阅读 17,212评论 0赞 8
  • * ES集群会在生产环境被长期实践, 一些重要概念, 包括应用和优化调试方法值得记录分享 * 所以, 会有关于ES...
    君剑阅读 2,524评论 0赞 0
  • 文档 文档是搜索引擎的数据源,所有的检索等操作都是面向文档的,是搜索引擎的基础。 文档包含一个或多个字段,每个字段...
    0x70e8阅读 488评论 0赞 1
  • 亲爱的家人: 您好! 六周时间就这样悄然流逝,六五周时间对小牵牛花们来说处处充满了挑战,告诉孩子们不管做什...
    于向雨阅读 317评论 0赞 0

友情链接更多精彩内容