2014-11-13 90 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")); 
相关问题