我想直接从MOBZ的ElasticSearch头(web UI)中删除索引条目。
我在“任意请求”部分尝试了DELETE查询,其中包含以下内容:
{"query":{"term":{"supplier":"ABC"}}}
但是,我得到的回报是:
{
ok: true
acknowledged: true
}
并且不会删除条目。
我做错了什么?
答案 0 :(得分: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中这样做:
将/stock/one/_query
放在“GET / PUT / POST / DELETE”下拉框旁边的任意请求文本框中
在下拉菜单中选择DELETE
请求正文应为{"term":{"vendor":"Socks"}}
您的问题是您使用了{"query":{"term":{"vendor":"Socks"}}}
的请求正文
这对于搜索很好,但不适用于删除。
答案 1 :(得分:0)
我首先发出搜索请求,以验证您要删除的文档实际上是由查询返回的。
不可能提供明确的帮助,因为有很多事情可能会出错,但这里有一些可能的问题:
很有可能,这是最后一种选择。如果您尚未指定分析器,ES选择的默认分析器是标准分析器,其中包括一个小写过滤器。因此,术语“ABC”从不编入索引,而是将“abc”编入索引。
根本不分析术语查询,因此区分大小写非常重要。
如果这些提示无效,请提供您的地图和一些示例数据,我们可能会提供更好的帮助。
答案 2 :(得分:0)
通过doc ID从插件头删除的简单方法:
http:/localhost:9200/myindex/indextype/id
放在DELETE下拉菜单上方的文本框中以下是示例图片: