--- title: "策略不存在 – 如何解决此 Elasticsearch 异常" date: 2026-01-02 lastmod: 2026-01-02 description: "当 Elasticsearch 尝试应用一个系统中不存在的策略时会出现此错误。这可能是由于策略名称拼写错误或策略已被删除。要解决此问题,可以创建同名策略或更正请求中的策略名称。" tags: ["策略管理", "异常处理", "资源不存在错误"] summary: " 版本: 7.16-8.9 简而言之,当 Elasticsearch 尝试应用系统中不存在的策略时会发生此错误。这可能是由于策略名称拼写错误或策略已被删除。要解决此问题,您可以创建一个同名的新策略,或者在请求中更正策略名称。此外,如果您使用多个集群,请确保在正确的集群中创建了策略。最后,检查策略是否被意外删除,并在必要时恢复它。 日志上下文 # 日志 “policy [{}] does not exist” 的类名是 EnrichPolicyExecutor.java。 我们从 Elasticsearch 源代码中提取了以下内容,供寻求深入了解上下文的人参考: ActionListenerlistener ) { try { EnrichPolicy policy = EnrichStore.getPolicy(policyName; clusterService.state()); if (policy == null) { throw new ResourceNotFoundException("policy [{}] does not exist"; policyName); } task.setStatus(new ExecuteEnrichPolicyStatus(ExecuteEnrichPolicyStatus.PolicyPhases.SCHEDULED)); Runnable runnable = createPolicyRunner(policyName; policy; enrichIndexName; task; listener); threadPool.executor(ThreadPool.Names.GENERIC).execute(runnable); " --- > **版本:** 7.16-8.9 简而言之,当 Elasticsearch 尝试应用系统中不存在的策略时会发生此错误。这可能是由于策略名称拼写错误或策略已被删除。要解决此问题,您可以创建一个同名的新策略,或者在请求中更正策略名称。此外,如果您使用多个集群,请确保在正确的集群中创建了策略。最后,检查策略是否被意外删除,并在必要时恢复它。 日志上下文 ----------- 日志 "policy [{}] does not exist" 的类名是 [EnrichPolicyExecutor.java。](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/) 我们从 Elasticsearch 源代码中提取了以下内容,供寻求深入了解上下文的人参考: ```java ActionListenerlistener ) { try { EnrichPolicy policy = EnrichStore.getPolicy(policyName; clusterService.state()); if (policy == null) { throw new ResourceNotFoundException("policy [{}] does not exist"; policyName); } task.setStatus(new ExecuteEnrichPolicyStatus(ExecuteEnrichPolicyStatus.PolicyPhases.SCHEDULED)); Runnable runnable = createPolicyRunner(policyName; policy; enrichIndexName; task; listener); threadPool.executor(ThreadPool.Names.GENERIC).execute(runnable); ```