【问题标题】:unable to delete all documents of a type in an index无法删除索引中某个类型的所有文档
【发布时间】:2016-04-14 14:48:16
【问题描述】:

我根本无法通过nest或curl命令删除elasticsearch中索引中某个类型的文档。

索引:testndx 类型:产品

我试过这些:

巢:
esconn.DeleteByQuery("testndx", "product", del => del.Query(q => q.QueryString(qs => qs.Query("*"))));

卷曲:
curl -X DELETE http://192.168.3.2:9200/testndx/product/_query?q=*

curl -X DELETE http://192.168.3.2:9200/testndx/product/_query

我正在使用 .Net 4.6.1、Nest 2.1.1、ElasticSearch 2.3.0。

提前感谢您的帮助。

【问题讨论】:

标签: c# elasticsearch nest


【解决方案1】:

DeleteByQuery 在 Elasticsearch 2.0 中被移除。

在 Elasticsearch 2.x 中,您应该发出 Scroll 请求以删除所有文档,并通过批量请求实际删除它们。

Nest Scroll API:https://nest.azurewebsites.net/nest/search/scroll.html

嵌套批量删除:https://nest.azurewebsites.net/nest/core/bulk.html

【讨论】:

  • 迈克尔感谢您的回复。你能提供示例代码吗?我找不到有关弹性搜索的适当文档,尤其是有关嵌套客户端的文档。如果可以的话,你能推荐一些学习链接吗?谢谢。
  • 我添加了指向嵌套客户端文档的链接。希望它有所帮助。 ;)
  • 好的。现在我可以删除文档了。现在我需要在一个查询中获取一种类型的所有文档。我读到搜索命令针对小型查询进行了优化,人们建议写一个高于我猜应该有的数字的数字。那么在我的情况下,我可以想象没有限制。所以,我还读到应该使用滚动命令询问大型结果集查询。我什至读到所有文档都可以通过滚动命令检索,但我找不到方法。所以我的下一个问题是如何使用 Nest 获取所有类型的文档?谢谢。
  • DeleteByQuery 仍可作为单独的插件使用 - elastic.co/guide/en/elasticsearch/plugins/current/…
  • 谢谢大家的回答 :-) @RussCam 你知道为什么 DeleteByQuery 单独作为一个插件吗?性能不好?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-04
  • 2020-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-12
  • 1970-01-01
相关资源
最近更新 更多