版本: 6.8-7.15
简而言之,当在Elasticsearch中的跟随引擎(副本分片)上尝试执行没有分配序列号的操作时,会出现此错误。这对于维护分片间的数据一致性至关重要。要解决此问题,请确保每个操作都有序列号。可以通过在Elasticsearch配置中启用序列号功能来实现。此外,检查应用程序代码以确保没有绕过此要求。如果问题仍然存在,可以考虑重新索引数据或重启Elasticsearch集群。
日志上下文 #
日志 “a following engine does not accept operations without an assigned sequence number” 的类名是 FollowingEngine.java。我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入了解上下文的人参考:
private void preFlight(final Operation operation) {
assert FollowingEngineAssertions.preFlight(operation);
if (operation.seqNo() == SequenceNumbers.UNASSIGNED_SEQ_NO) {
throw new ElasticsearchStatusException("a following engine does not accept operations without an assigned sequence number";
RestStatus.FORBIDDEN);
}
}





