搜索请求的 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 是否先进行搜索,然后进行一些插入,然后聚合形式,这将显示与多匹配搜索不匹配的聚合计数?
无论正在进行的索引请求的频率如何,您都可以保证聚合 运行 在 完全相同的文档集 上,无论约束如何选择在查询部分指定。
否则将是一场噩梦。
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).
我是 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 是否先进行搜索,然后进行一些插入,然后聚合形式,这将显示与多匹配搜索不匹配的聚合计数?
无论正在进行的索引请求的频率如何,您都可以保证聚合 运行 在 完全相同的文档集 上,无论约束如何选择在查询部分指定。
否则将是一场噩梦。
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).