C#学习教程:ElasticSearch和NEST:如何清除索引中的所有文档?分享


ElasticSearch和NEST:如何清除索引中的所有文档?

我知道如何删除整个ElasticSearch索引 ,但是如何从索引中清除所有文档?

我的动机:我想要一个“ReIndex”方法来清除索引的全部内容,以便我可以重新加载所有文档。

ElasticSearch语法很有用。 NEST语法会更好。

我在Nest中寻找类似的东西,我想我会把语法放在任何人看来:

var node = new Uri("http://localhost:9200"); var settings = new ConnectionSettings(node); var client = new ElasticClient(settings); client.DeleteByQuery(del => del .Query(q => q.QueryString(qs=>qs.Query("*"))) ); 

您可以使用按查询删除。 这将删除所有匹配*即所有内容的文档。

 curl -XDELETE localhost:9200//_query?q=* 

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-delete-by-query.html

不要忘记事后优化。

 curl localhost:9200//_optimize 

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

优化过程将通过查询删除来清除您完成的所有软删除。

我们也面临着一个类比问题,我们删除了很多文档。实际上,我们将大量文档从一个索引移动到另一个索引,因为我们按日期分片数据。 但由于ES不支持将数据从一个索引移动到另一个索引。

但优化是一项代价高昂的操作,因为它消耗了大量的IO搜索。 如果你只是想清除只是为了删除我猜你可以使用“only_expunge_deletes”标志来合并只有删除的段。

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

上述就是C#学习教程:ElasticSearch和NEST:如何清除索引中的所有文档?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

 **To delete all Records -** client.DeleteByQuery(del => del .Query(q => q.QueryString(qs=>qs.Query("*")) )); **To delete index-** client.DeleteIndex(d => d.Index("index_name")); 

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1031560.html

发表评论

邮箱地址不会被公开。 必填项已用*标注