2014-11-13 80 views

回答

13

我一直在尋找鳥巢類似的東西,我想我會把語法這裏任何人都希望:

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("*"))) 
); 
1

$ curl -XPOST localhost:9200/myindex/_optimize ....

優化過程將清理由你做的刪除通過查詢所有softdeletes。

我們還面臨着一個類似的問題,我們刪除了大量的文檔。實際上,我們將很多文檔從一個索引移動到另一個索引,因爲我們按日期分割了數據。但是由於ES不支持將數據從一個索引移動到另一個索引。

但優化,是一個代價高昂的操作,因爲它消耗了大量的IO查找。如果你只是想爲刪除進行清除,我想你可以利用「only_expunge_deletes」標誌合併只有刪除的段。

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-optimize.html

0
**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")); 
相關問題