解决 ElasticSearch 单机模式索引丢失
最近的实作用 elasticsearch
来进行搜索,写了个定时任务把数据库的表和ES进行同步,当时测试没问题了。结果录演示视频的时候发现搜不出来了,上去 kibana
一看,发现索引表是空的,赶紧重新同步了一遍录完了视频。结果第二天再试又空了,很奇怪于是上网搜了一会,发现是单机模式的锅。
既然是实作而不是真的上线的业务,应该没人会建集群。而且刚好又没啥相关经验,很容易就会遗漏一些特性,比如当我们建立索引的时候,elasticsearch
会分配一个主分片和一个副本分片。但是,按照规定主分片和副本分片不应该共存于同一台服务器之上。如果是单机版的elasticsearch
,主分片和副本分片共存则视为索引的状态有问题,elasticsearch
系统会检测到并删除的。
所以解决问题也很简单,设置副本分片为0即可。
PUT index/_settings
{
"index" : {
"number_of_replicas" : 0
}
}
看看其他吧