我需要建立一个新的 ES 索引,以便在将来的某个时候切换到。我一直在使用别名来执行此操作,方法是让我的应用程序引用别名,并根据需要使用 HTTP API 将别名指向现有索引或新索引。不幸的是,当应用程序重新启动时,它会提示索引已经作为别名存在。请参阅堆栈跟踪:
org.elasticsearch.indices.InvalidIndexNameException: [redacted] Invalid index name [redacted], already exists as alias
at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService.validateIndexName(MetaDataCreateIndexService.java:174)
at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService.validate(MetaDataCreateIndexService.java:510)
at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService.access$100(MetaDataCreateIndexService.java:86)
at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService$2.execute(MetaDataCreateIndexService.java:209)
at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:328)
at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:153)
任何人都知道为什么会发生这种情况以及我该如何防止它?
最佳答案
巧合的是,这似乎已通过今天插件 v0.0.4.0 的发布得到修复
https://noamt.github.io/elasticsearch-grails-plugin/guide/single.html#history
关于Grails Elasticsearch插件在启动时创建索引?我该如何阻止它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28190716/