搜索请求的 Elasticsearch 原子性保证

Elasticsearch atomicity guarantee for a search request

我是 Elasticsearch 的新手,在任何地方都找不到这个问题的答案。所以问题是,ES 是否为结合了方面搜索和文档多匹配搜索的 GET 请求提供任何原子性保证,例如在并行进行大量插入时如下所示。

POST shakespeare/_search?request_cache=false
{
  "query": {
        "multi_match" : {
            "query" : "henry"
        }
    },
    "size": 0,
    "aggs": {
    "Speaker Facet": {
      "terms": {
        "field": "speaker",
        "size": 12
      }
    },
    "text entry Facet": {
      "terms": {
        "field": "text_entry.keyword",
        "size": 12
      }
    },
    "play name Facet": {
      "terms": {
        "field": "play_name",
        "size": 12
      }
    }
  }
}

这是一个由 2 部分组成的请求 1. 多匹配搜索和 2. 聚合。如果同时进行大量插入,那么 ES 是否保证多匹配搜索和聚合结果都对同一数据集进行操作,并且查询的两个部分的结果相互匹配?或者 ES 是否先进行搜索,然后进行一些插入,然后聚合形式,这将显示与多匹配搜索不匹配的聚合计数?

无论正在进行的索引请求的频率如何,您都可以保证聚合 运行 在 完全相同的文档集 上,无论约束如何选择在查询部分指定。

否则将是一场噩梦。

来自documentation

An aggregation can be seen as a unit-of-work that builds analytic information over a set of documents. The context of the execution defines what this document set is (e.g. a top-level aggregation executes within the context of the executed query/filters of the search request).