ES集群分主从节点。
主节点是ID最大的节点。
默认每个索引对应5个主分片,每个主分片有一个副本分片。副本分片可以提高搜索的吞吐量,可以用于故障转移。
主从节点上都可以有主分片。有主分片不能正常工作,集群状态是red。有主分片对应的副本分片缺失,集群状态是yellow。重新补齐副本分片后,集群状态是green。比如,节点宕机,上面的主分片不能正常工作,集群状态是red;其它节点的副本分片变成主分片后,集群状态是yellow;其它节点补齐主分片缺失的副本分片后,集群状态是green。
minimum_master_nodes应该配置为N/2 + 1,也就是过半,过半节点认为是主节点,才会成为主节点。宕机节点重启后,如果配置为1,自己就会成为主节点,产生多个主节点。
https://blog.youkuaiyun.com/qingshuifuyun/article/details/123816811
——————————————
ES数据结构:查询若干前缀构成的树,也就是FST,有限状态转移机,找到关键词起始偏移量,在字典结构中找到完全匹配的关键词,然后得到对应的文档ID列表。ES可以为每个字段建立索引,需要节省内存,而前缀构成的树比起B+树可以节省内存。
根据文档ID寻找文档时,使用跳表。
多索引联合查询时,每个索引得到一个跳表,找文档ID列表少的索引对应的跳表,看每个文档ID的索引联合字段值在其它跳表的已过滤的文档的字段值是否相同。
相同索引,查询结果取交集,在文档数量超过4096时,采用比特位相与的方式。
https://cloud.tencent.com/developer/article/2031609