我对Elasticsearch有点陌生,在任何地方都找不到答案。因此问题是,ES是否为合并facet搜索和文档多匹配搜索的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首先进行搜索,然后进行一些插入,然后进行聚合形式,这会显示聚合计数与多匹配搜索不匹配?
发布于 2020-05-20 17:06:47
无论正在进行的索引请求的频率如何,您都可以保证聚合在上运行,与查询部分中指定的任何约束所选择的文档集完全相同。
否则会是一场噩梦。
来自文档
聚合可以看作是在一组文档上构建分析信息的工作单元。执行的上下文定义了这个文档集是什么(例如,顶级聚合在搜索请求的执行查询/过滤器的上下文中执行)。
https://stackoverflow.com/questions/61918409
复制相似问题