这个看似简单的任务没有在ElasticSearch文档中得到充分记录:
我们有一个ElasticSearch实例,该实例的索引中包含一个名为sourceId
的字段。我将首先GET
字段sourceId
DELETE
字段中所有具有100的文档(以便在删除前验证结果)然后再$artist
相同的文档进行API调用?
答案 0 :(得分:3)
您可能需要在此处进行两次API调用。首先查看文件的数量,其次执行删除。
查询将是相同的,但是终点是不同的。另外,我假设sourceId
的类型为keyword
POST <your_index_name>/_search
{
"size": 0,
"query": {
"term": {
"sourceId": "100"
}
}
}
执行上面的Term Query,并在响应的hits.total
上做一个记录。
如果要查看整个文档作为响应,请删除上述查询中的"size":0
。
一旦有了详细信息,就可以继续使用下面的查询中所示的相同查询执行删除操作,但是请注意端点。
POST <your_index_name>/_delete_by_query
{
"query": {
"term": {
"sourceId": "100"
}
}
}
执行Deletion By Query后,请注意响应中的deleted
字段。它必须显示相同的号码。
我使用过术语查询,但是您也可以使用任何Match或任何复杂的Bool Query。只需确保查询正确即可。
希望有帮助!