elasticsearch - 搜索请求的 Elasticsearch 原子性保证
问题描述
我是 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 是否先进行搜索,然后进行一些插入,然后进行聚合形式,这将显示聚合计数与多匹配搜索不匹配?
解决方案
无论正在进行的索引请求的频率如何,都可以保证聚合运行在完全相同的文档集上,该文档集已由查询部分中指定的任何约束选择。
否则将是一场噩梦。
从文档中:
聚合可以看作是在一组文档上构建分析信息的工作单元。执行的上下文定义了该文档集是什么(例如,顶级聚合在搜索请求的已执行查询/过滤器的上下文中执行)。
推荐阅读
- ios - 如何以编程方式使用容器视图
- swagger - 无法使用自定义基本控制器创建 swagger.json
- python - 减少操作后如何让numpy广播操作
- python - python spacy 在窗口中寻找两个(或更多)单词
- javascript - 将自定义 JS 与 odoo 集成
- html - 使用 CSS 动画更改部分文本
- java - 使用扩展泛型自动装配 Spring-Bean 的最佳实践
- java - 附加变量以进行 HTTP 调用时失败
- c++ - 谁能解释一下为什么这个特性不能正常工作?
- sql-server - 如何生成 SQL Server 快照发布作为现有 SQL Server 代理作业的一个步骤