健康状态red问题查找
有一天查数据的时候突然报错了,然后看了一下索引,发现该索引的health为red,先看一下索引层级的健康状况
1 | GET _cluster/health?level=indices |
可以看到所有的分片都未分配
冲刷操作是将分段从内存移到磁盘,并清除事务日志
默认的配置是
1 | "index":{ |
也就是说每个请求都会进行flush,这样保证了数据不会丢失,但是写入性能会很差,可以设置为异步,持久化策略为周期性和一定大小的时候flush
1 | "index": { |
这样就调整为60s(sync_interval)刷新一次或者当超过512m(flush_threshold_size)进行刷新
使用bulk进行批量操作
segment作为最小的检索单元,需要将多个segment检索到的数据进行排序合并,调整refresh_interval参数,该时间为文档被索引到数据搜索可见时间间隔,如果对于实时性不那么高的话,可以适当调高,增加该值可以使得更大的部分flush并减少未来的合并压力
刷新之后搜索才能命中新索引的数据
1 | index.refresh_interval: 30s |