当index创建完成后,后续需要对字段type或者调整分片数量,都新建index并对数据重新索引(reindex),reindex虽然会比较耗时,但至少能保证不会停机。
分配每个分片都有额外的成本,每个分片本质上就是一个Lucene索引,因此会消耗响应的文件句柄,内存和CPU资源。
分片处理是将一个索引分割成若干更小索引的过程,从而能够在同一集群的不同节点上散布它们。在查询的时候,结果是索引中每个分片返回结果的汇总(有时并不是真的汇总,因为可能某个分片上就包含了所有需要的数据)。
elasticsearch原生支持date类型,使用date类型可以用如下两种方式:
1. 使用毫秒的时间戳,直接将毫秒值传入即可。
2. 传入格式化的字符串,默认是ISO 8601标准,例如2018-01-27T00:07Z(零时区)、2018-01-27T08:07+08:00(东八区),这两个时间实际是同一个,只是时区不同。另外还可以自定义时间格式,参见es的文档。但个人不建议使用自定义格式,设置不当容易遇到时区问题。
elasticsearch默认会自动识别date类型,如果想关闭该功能,修改mapping的设置'date_detection' => false即可 。