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之后返回给用户。

最新文章

  1. Eclipse相关设置与优化
  2. TextSwitcher 简单用例
  3. javascript 中的继承实现, call,apply,prototype,构造函数
  4. Libevent库 编译与使用
  5. gnuplot Python API
  6. 【实践】获取CKEditor的html文本、纯文本、被选中的内容及赋值
  7. android应用程序的安装方式与原理
  8. 静态Web开发 JQuery
  9. CLLocationManager 位置定位
  10. virtualBox,webstorm,开虚拟机传代码
  11. selinux基本
  12. Non-decreasing Array LT665
  13. Java多线程编程核心技术(三)多线程通信
  14. CDN 服务域名解析配置
  15. windows常用命令积累
  16. yum离线安装rpm包
  17. 1.2.1 工作流管理系统参考模型 (zhuan)
  18. Integer与int的种种比较你知道多少
  19. love2d教程30--文件系统
  20. SSH总结(二)

热门文章

  1. R Graphics Cookbook 第3章 – Bar Graphs
  2. oracle断电重启之ORA-00600[4194]
  3. 挣值管理(PV、EV、AC、SV、CV、SPI、CPI)记忆之我见
  4. Xcode找Library位置
  5. iOS8以后 UISearchController的用法
  6. iptables & selinux
  7. mysql 命令行
  8. Linux下使用iostat 监视I/O状态
  9. 一·创建Linux服务器(基于阿里云)
  10. IE6-9中tbody的innerHTML不能赋值bug