这个看似简单的任务在 ElasticSearch 文档中没有得到很好的记录:
我们有一个 ElasticSearch 实例,它的索引中有一个名为 的字段sourceId。我首先会调用什么 API,字段中GET包含 100 的所有文档sourceId(以在删除前验证结果),然后调用DELETE相同的文档?
Kam*_*mal 11
您可能需要在此处进行两次 API 调用。第一个查看文档数量,第二个执行删除。
查询将是相同的,但终点不同。另外我假设sourceId将是类型keyword
POST <your_index_name>/_search
{
"size": 0,
"query": {
"term": {
"sourceId": "100"
}
}
}
Run Code Online (Sandbox Code Playgroud)
执行上面的Term Query并记下hits.total响应的 。
"size":0如果您想查看整个文档作为响应,请删除上述查询中的 。
获得详细信息后,您可以继续使用以下查询中所示的相同查询执行删除,但请注意端点。
POST <your_index_name>/_delete_by_query
{
"query": {
"term": {
"sourceId": "100"
}
}
}
Run Code Online (Sandbox Code Playgroud)
执行Deletion By Query 后,请注意deleted响应中的字段。它必须显示相同的数字。
我使用了术语查询,但是您也可以使用任何Match或任何复杂的Bool Query。只要确保查询是正确的。
希望能帮助到你!
| 归档时间: |
|
| 查看次数: |
4554 次 |
| 最近记录: |