5

我想直接从 MOBZ 的 ElasticSearch 头(Web UI)中删除索引条目。

我在“任何请求”部分尝试了 DELETE 查询,内容如下:

{"query":{"term":{"supplier":"ABC"}}}

然而,我得到的回报是:

{
ok: true
acknowledged: true
}

并且条目不会被删除。

我究竟做错了什么?

4

3 回答 3

5

您应该已经从您的帖子数据中删除了“查询”。您只需要它来进行 _search,并且应该使用 _query 入口点进行删除。在这种情况下,很明显该帖子只是一个查询,因此使其显式声明它是一个查询是重复的(实际上是无关紧要的)。

那是:

curl -XPOST 'localhost:9200/myindex/mydoc/_search' -d 
'{"query":{"term":{"supplier":"ABC"}}}'

可以很好地进行搜索。但是要通过查询删除,如果您尝试:

curl -XDELETE 'localhost:9200/myindex/mydoc/_query' -d 
'{"query":{"term":{"supplier":"ABC"}}}'

它不起作用(请注意 _query 入口点的更改,以及将 CURL 参数切换为删除)。您需要致电:

curl -XDELETE 'localhost:9200/myindex/mydoc/_query' -d 
'{"term":{"supplier":"ABC"}}'

让我知道这是否有帮助。

如果您想在 HEAD 中执行此操作:

  1. 放入/stock/one/_query“GET/PUT/POST/DELETE”下拉框旁边的任何请求文本框

  2. 在下拉菜单中选择删除

  3. 请求正文应该是{"term":{"vendor":"Socks"}}

您的问题是您使用了以下请求正文:{"query":{"term":{"vendor":"Socks"}}} 这对于搜索很好,但对于删除则不行。

于 2013-03-24T09:22:10.843 回答
0

我会首先发出一个搜索请求,以验证您要删除的文档是否实际上是由您的查询返回的。

不可能给出明确的帮助,因为有很多事情可能会出错,但这里有一些可能的问题:

  • 您没有在 ES Head 查询中指定正确的索引/类型
  • 您需要在第二个输入框中指定索引和类型,而不是第一个。第一行用于主机地址,并自动添加尾部斜杠
  • 您需要使用下拉菜单中的删除命令
  • 您的字段分析器正在以 Term 查询找不到的方式更改字段文本。

很可能,这是最后的选择。如果您没有指定分析器,则 ES 选择的默认分析器是标准分析器,其中包括一个小写过滤器。因此,术语“ABC”从未被索引,而是“abc”被索引。

词条查询根本不分析,所以区分大小写很重要。

如果这些提示没有帮助,请发布您的地图和一些示例数据,我们可能会提供更好的帮助。

于 2013-03-22T23:33:46.913 回答
0

通过 doc Id 从插件头中删除的简单方法:

  1. 转到插件头中的任何请求选项卡
  2. 只需http:/localhost:9200/myindex/indextype/id在 DELETE 下拉框上方的文本框中输入
  3. 从下拉列表中选择删除
  4. 通过单击请求按钮执行请求

这是示例图像:

于 2020-02-24T06:05:07.567 回答