我想直接从 MOBZ 的 ElasticSearch 头(Web UI)中删除索引条目。
我在“任何请求”部分尝试了 DELETE 查询,内容如下:
{"query":{"term":{"supplier":"ABC"}}}
然而,我得到的回报是:
{
ok: true
acknowledged: true
}
并且条目不会被删除。
我究竟做错了什么?
我想直接从 MOBZ 的 ElasticSearch 头(Web UI)中删除索引条目。
我在“任何请求”部分尝试了 DELETE 查询,内容如下:
{"query":{"term":{"supplier":"ABC"}}}
然而,我得到的回报是:
{
ok: true
acknowledged: true
}
并且条目不会被删除。
我究竟做错了什么?
您应该已经从您的帖子数据中删除了“查询”。您只需要它来进行 _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 中执行此操作:
放入/stock/one/_query
“GET/PUT/POST/DELETE”下拉框旁边的任何请求文本框
在下拉菜单中选择删除
请求正文应该是{"term":{"vendor":"Socks"}}
您的问题是您使用了以下请求正文:{"query":{"term":{"vendor":"Socks"}}}
这对于搜索很好,但对于删除则不行。
我会首先发出一个搜索请求,以验证您要删除的文档是否实际上是由您的查询返回的。
不可能给出明确的帮助,因为有很多事情可能会出错,但这里有一些可能的问题:
很可能,这是最后的选择。如果您没有指定分析器,则 ES 选择的默认分析器是标准分析器,其中包括一个小写过滤器。因此,术语“ABC”从未被索引,而是“abc”被索引。
词条查询根本不分析,所以区分大小写很重要。
如果这些提示没有帮助,请发布您的地图和一些示例数据,我们可能会提供更好的帮助。
通过 doc Id 从插件头中删除的简单方法:
http:/localhost:9200/myindex/indextype/id
在 DELETE 下拉框上方的文本框中输入这是示例图像: