MST
星途 面试题库

面试题:ElasticSearch复杂查询删除返回体解析

当使用复杂的布尔查询(bool query)结合删除操作时,返回体结构会因不同查询条件的匹配情况而变化。请阐述如何通过返回体判断不同条件下的删除结果,例如部分匹配、完全匹配或无匹配的情况。
26.5万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试

部分匹配

  1. 分析返回体结构:在 Elasticsearch 等支持复杂布尔查询结合删除操作的系统中,返回体通常包含 _shards 字段,它会显示删除操作涉及的分片信息。如果部分匹配,_shards 中的 successful 数量会小于 total 数量,且 deleted 字段会显示实际删除的文档数量。例如:
{
  "_shards": {
    "total": 5,
    "successful": 3,
    "failed": 0
  },
  "deleted": 2
}

这里 successful 为 3 小于 total 的 5,说明有部分分片操作成功,deleted 为 2 表示部分匹配并删除了 2 个文档。

完全匹配

  1. 分析返回体结构:返回体中 _shardssuccessful 字段值会等于 total 字段值,同时 deleted 字段会显示删除的文档数量。例如:
{
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "deleted": 5
}

这表明所有分片都成功执行删除操作,并且完全匹配删除了 5 个文档。

无匹配

  1. 分析返回体结构:返回体中 _shardssuccessful 字段值仍可能等于 total 字段值,但 deleted 字段值为 0。例如:
{
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "deleted": 0
}

说明操作成功执行,但没有匹配到任何文档进行删除,即无匹配情况。