📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 6.8-7.15

简要来说,当 Elasticsearch 在查询中期望特定语法但未找到时,会发生此错误。它期望找到一个 “+” 号或 “EMPTY” 值。这通常由于查询语法不正确或不完整导致。要解决此问题,您可以:1) 检查查询语法以确保其正确且完整。2) 检查查询中是否有缺失或多余的字符。3) 确保 “+” 号或 “EMPTY” 值在查询中正确放置。4) 在部署到生产环境之前,在开发环境中测试您的查询。

日志上下文 #

日志 “expected ” + EMPTY + “ or ” 的类名是 GeoWKTParser.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些需要深入理解上下文的人参考:

private static String nextEmptyOrOpen(StreamTokenizer stream) throws IOException, ElasticsearchParseException {
    final String next = nextWord(stream);
    if (next.equals(EMPTY) || next.equals(LPAREN)) {
        return next;
    }
    throw new ElasticsearchParseException("expected " + EMPTY + " or " + LPAREN
        + " but found: " + tokenString(stream), stream.lineno());
}

private static String nextCloser(StreamTokenizer stream) throws IOException, ElasticsearchParseException {
    if (nextWord(stream).equals(RPAREN)) {