--- title: "不能包含 - 如何解决此 Elasticsearch 异常" date: 2026-03-31 lastmod: 2026-03-31 description: "当查询或发送到 Elasticsearch 的数据中包含分号时会发生此错误。Elasticsearch 将分号解释为特殊字符,这可能会中断解析过程。" tags: ["Elasticsearch异常", "查询错误", "特殊字符", "数据验证"] summary: " 版本: 6.8-8.9 简而言之,当发送到 Elasticsearch 的查询或数据中包含分号(;)时会发生此错误。Elasticsearch 将分号解释为特殊字符,这可能会中断解析过程。要解决此问题,你可以从数据或查询中删除分号,或者在数据中必须包含分号时使用反斜杠(;)对其进行转义。此外,确保你的应用程序的输入验证过程能够防止此类字符包含在发送到 Elasticsearch 的数据中。 日志上下文 # 日志"must not contain ‘;'“的类名是 SnapshotsService.java。我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入了解的人参考: } if (snapshotName.contains(" ")) { throw new InvalidSnapshotNameException(repositoryName; snapshotName; "must not contain whitespace"); } if (snapshotName.contains(";")) { throw new InvalidSnapshotNameException(repositoryName; snapshotName; "must not contain ';'"); } if (snapshotName.contains("#")) { throw new InvalidSnapshotNameException(repositoryName; snapshotName; "must not contain '#'"); } if (snapshotName.charAt(0) == '_') { " --- > **版本:** 6.8-8.9 简而言之,当发送到 Elasticsearch 的查询或数据中包含分号(;)时会发生此错误。Elasticsearch 将分号解释为特殊字符,这可能会中断解析过程。要解决此问题,你可以从数据或查询中删除分号,或者在数据中必须包含分号时使用反斜杠(\;)对其进行转义。此外,确保你的应用程序的输入验证过程能够防止此类字符包含在发送到 Elasticsearch 的数据中。 日志上下文 ----------- 日志"must not contain ';'"的类名是[SnapshotsService.java。](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/)我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入了解的人参考: ```java } if (snapshotName.contains(" ")) { throw new InvalidSnapshotNameException(repositoryName; snapshotName; "must not contain whitespace"); } if (snapshotName.contains(";")) { throw new InvalidSnapshotNameException(repositoryName; snapshotName; "must not contain ';'"); } if (snapshotName.contains("#")) { throw new InvalidSnapshotNameException(repositoryName; snapshotName; "must not contain '#'"); } if (snapshotName.charAt(0) == '_') { ```