作者回复: 如果你的数据是有时间序列的,那么通过在索引中增加时间戳可以更加方便的帮助你对索引进行管理。有这样一些好处 1)如果你想删除超过4个月的数据,delete整个索引的性能要比,deleteByQuery要更加高效 2)查询可以通过创建 alias 在多个索引上进行查询,所以并不需要把数据都放在一个索引上 如果你非要使用一个索引,那你就需要自己去实现deleteByQuery并且通过reIndex API把需要的数据进行迁移。会比较繁琐,同时不高效
作者回复: hotwarm其实不难。几个考点 在配置文件中为节点增加 node attribute(这个名字你自己随意取,课程中 我叫他box type) 第二,在创建所以时,将routing 配置到hot上。 第三,在索引不再有数据写入时,通过修改 routing.allocation到warm,即可分配到warm。 从考试准备的角度。你需要清楚的记得这些配置项可以在文档的哪个章节找到。我觉得通过考试就不难。 从实际生产环境上,可以考虑创建index template 自动为新的索引执行routing.allocation。可以使用ILM,为warm阶段设置routimg allocation,并将index配置成只读,同时做force merge等操作。 这些你最好都要了解,但是我不认为会在考试的一道题目中同时考到那么多综合的知识点
作者回复: 你可以查阅以下文档 Index Modules 》index shard allocation 〉Delaying allocation when node leave 通过setting API 改成一个相对大的时间,例如5分钟
作者回复: rack id 主要是确保机器不是在一个机架上 而确保整个机架断电引发故障。就行这样的设置会更加安全。如果你没有足够的机器和机架 可以忽略这项设置
作者回复: 🤝
作者回复: 老的版本,你可以通过使用ES发布的Curator来实现索引的数据管理。Curator是基于python开发的一个库
作者回复: 可以看一下第76节的课程。如果是使用低版本的es,可以使用es提供的curator实现相关逻辑
作者回复: 课上的demo都是在一台笔记本上演示的。生产环境,建议一台机器就运行一个es实例