我创建了一个索引
curl -XPUT 'http://localhost:9200/tipindex/' -d '{
"settings" : {
"index" : {
"number_of_shards" : 1,
"number_of_replicas" : 1,
}
}
}
}'
然后我使用以下命令将河与索引相关联:
curl -XPUT "localhost:9200/_river/tipindex/_meta" -d '
{
"type": "mongodb",
"mongodb": {
"host": "<machine-name>",
"port": "27017",
"db": "mydb",
"collection": "tips"
},
"index": {
"name": "tipindex",
"type": "tips"
}
}'
正确创建索引并索引所有文档。但是,如果我使用以下命令删除索引:
curl -XDELETE '<machine-name>:9200/tipindex/'
以{"ok":true,"acknowledged":true}
ES日志:[tipindex]删除索引
现在如果我执行curl -XDELETE'localhost:9200 / tipindex /'
{"error":"IndexMissingException[[tipindex] missing]","status":404}
表示删除索引。
但是,如果我重新启动elasticsearch,则会再次创建带有0个文档且没有映射的索引。
如果我重新创建索引并关联河流,则不会对文档编制索引。 ES日志也不会显示任何错误。
现在我的问题是:
答案 0 :(得分:0)
这可能是由于蒙戈河。
为什么索引不会被删除?
如果索引不存在,每次重新启动河流时都会重新创建索引。
当我重新创建索引时,为什么文档没有再被索引?
我认为_river/tipindex
中的Mongo河存储索引最后一个获取点。当你已经经营这条河时,其中还有一些东西。
您可以查看此索引中剩余的所有文档:
curl localhost:9200/_river/tipindex/_search?q=*
如果您需要重新启动河流,最好的方法是让我像以前一样移除并重建河流。
HTH