版本: 6.8-8.9
简而言之,当Elasticsearch遇到它无法识别的问题时,就会出现此错误。这通常是由于缺乏详细的日志记录或系统中出现意外情况造成的。要解决此问题,您可以提高日志记录级别以获取有关错误的更详细信息。您还可以检查Elasticsearch集群的健康状况,确保所有节点正常运行。此外,您应该验证查询语法和数据类型,因为不正确的使用通常会导致未知错误。
日志上下文 #
日志"unknown cause"的类名是 RestController.java。我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人使用:
public void dispatchBadRequest(final RestChannel channel, final ThreadContext threadContext, final Throwable cause) {
threadContext.addResponseHeader(ELASTIC_PRODUCT_HTTP_HEADER, ELASTIC_PRODUCT_HTTP_HEADER_VALUE);
try {
final Exception e;
if (cause == null) {
e = new ElasticsearchException("unknown cause");
} else if (cause instanceof Exception) {
e = (Exception) cause;
} else {
e = new ElasticsearchException(cause);
}





