elasticsearch - 批量api中相同文档ID的Elasticsearch多个索引请求
问题描述
我们正在使用弹性搜索 6.0 并使用批量索引在单个请求中使用“索引”操作对许多文档进行索引。在单个请求中,我们可能会遇到在同一个文档上有多个“索引”请求的场景。在这种情况下,ES 会失败批量请求还是会按顺序处理所有请求?
Edit1:我使用脚本在我们正在处理乱序更新的批量请求中建立索引。因此,只要所有“索引”请求都得到处理,我们就没有任何问题。
解决方案
ES 不会失败,但不一定清楚哪个索引操作会“获胜”。它可能是最后一个,但由于批量批处理中的所有操作可能分布在多个摄取节点上,并且并非所有这些节点都以相同的速率处理索引操作,因此可能不清楚哪个操作将首先处理,哪个操作将最后处理。
您拥有的唯一保证是,在响应中,您将按照请求批处理中指定的顺序获得每个操作的状态。
如果您的索引只有一个主分片,那么您提交操作的顺序将与处理这些操作的顺序相同,因此最后一个获胜,但如果您在多个主分片上拥有多个主分片节点,那么你无法真正知道。
一个更好的问题是,为什么您事先知道只有一个会获胜,所以要为每个文档提交多个索引操作?
推荐阅读
- java - 无法将按钮添加到框架 GUI
- jsf - 在 Liferay 7.0 中导航后仍保留 PrimeFaces 标记
- python - 使用 pandas GroupBy 聚合字符串列
- go - 更改文件名路径目录
- ios - UILabel 在数字和百分号之间添加双引号
- eclipse - Jersey、REST 和 web.xml 在 Eclipse 中运行时禁用 @ServerEndpoint websocket
- sql - 需要 SQL Server 中的查询逻辑
- python - 奇怪的饼图被截断
- linux - 如何检查给定页面是否是内核模块中的 ZERO_PAGE?
- git - 我有两个不同的分支,有着不同的历史。如何从功能分支中获取更改并合并到两者?