我知道如何delete an entire ElasticSearch index,但是如何清除索引中的所有文档?ElasticSearch和NEST:如何清除索引中的所有文档?
我的动机:我想要一个“ReIndex”方法来清除索引的全部内容,以便我可以重新加载所有文档。
ElasticSearch语法会很有帮助。 NEST语法会更好。
我知道如何delete an entire ElasticSearch index,但是如何清除索引中的所有文档?ElasticSearch和NEST:如何清除索引中的所有文档?
我的动机:我想要一个“ReIndex”方法来清除索引的全部内容,以便我可以重新加载所有文档。
ElasticSearch语法会很有帮助。 NEST语法会更好。
我一直在寻找鸟巢类似的东西,我想我会把语法这里任何人都希望:
var node = new Uri("http://localhost:9200");
var settings = new ConnectionSettings(node);
var client = new ElasticClient(settings);
client.DeleteByQuery<ElasticsearchProject>(del => del
.Query(q => q.QueryString(qs=>qs.Query("*")))
);
您可以使用查询删除。这将删除所有匹配*的文件,即一切。
curl -XDELETE localhost:9200/<indexname>/_query?q=*
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-delete-by-query.html
不要忘了事后优化。
curl localhost:9200/<indexname>/_optimize
$ curl -XPOST localhost:9200/myindex/_optimize
....
优化过程将清理由你做的删除通过查询所有softdeletes。
我们还面临着一个类似的问题,我们删除了大量的文档。实际上,我们将很多文档从一个索引移动到另一个索引,因为我们按日期分割了数据。但是由于ES不支持将数据从一个索引移动到另一个索引。
但优化,是一个代价高昂的操作,因为它消耗了大量的IO查找。如果你只是想为删除进行清除,我想你可以利用“only_expunge_deletes”标志合并只有删除的段。
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-optimize.html
**To delete all Records -**
client.DeleteByQuery<ElasticsearchProject>(del => del
.Query(q => q.QueryString(qs=>qs.Query("*"))
));
**To delete index-**
client.DeleteIndex(d => d.Index("index_name"));
DeleteByQuery现在已经过时。任何人在Nest 2版本中都有最新的语法? – LMK