我知道如何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