elasticsearch,alias,Indexing,elasticsearch,Alias" /> elasticsearch,alias,Indexing,elasticsearch,Alias" />

Indexing elasticsearch中索引请求的自动别名创建

Indexing elasticsearch中索引请求的自动别名创建,indexing,elasticsearch,alias,Indexing,elasticsearch,Alias,是否可以在索引请求中为elasticsearch中缺少的索引自动创建别名,而不是创建索引 例如,假设一个索引请求出现在uk_london索引中,类型为document和文档内容。uk_london索引不存在,因此将创建该索引。我想避免这种创造,避免有一个。我希望ES创建一个别名uk_london(带有路由、过滤等),并将其指向uk索引(该索引已经存在) 我知道这个问题可以通过改变索引请求的输入方式来解决。我运行的集群接收来自多个系统的文档。我无法完全控制文件的发送方式,除非我真的必须这样做,否则

是否可以在索引请求中为elasticsearch中缺少的索引自动创建别名,而不是创建索引

例如,假设一个索引请求出现在
uk_london
索引中,类型为
document
和文档内容。
uk_london
索引不存在,因此将创建该索引。我想避免这种创造,避免有一个。我希望ES创建一个别名
uk_london
(带有路由、过滤等),并将其指向
uk
索引(该索引已经存在)

我知道这个问题可以通过改变索引请求的输入方式来解决。我运行的集群接收来自多个系统的文档。我无法完全控制文件的发送方式,除非我真的必须这样做,否则我将避免接触与文件相关的所有内容


我也意识到,通过他们。但是,据我所知,这并不能解决我的问题,因为您不能告诉它创建别名而不是索引。

如果我理解正确,您描述的是一种不确定的行为。在放入之前先执行GET,以确保索引存在。如果您担心它会给ES带来太大的压力,可以设置一个缓存层,如果索引存在,它会每分钟“询问”ES(一旦索引存在,它就会停止询问),只要索引不存在,就使用别名。也就是说,我不认为这是一个“健康”的ES使用,你可能想考虑改变你正在使用的数据模型。例如,在手之前创建所有相关索引(这与kagillion碎片无关)。在使用缓存之前获取是正确的解决方案,但不幸的是,这需要我更改客户端系统中的索引代码,这是我试图避免的。如果没有办法自动创建别名,我最终可能需要这样做。我无法事先创建索引/别名,因为我不知道索引器希望将数据放入哪些存储桶中。您可以阻止创建索引,但客户端将出现错误。至少他们可以选择更改代码。向他们解释正确的方法。但是阅读你的问题可能不是一个选择。也许一个自定义插件可以在这里帮助你。不确定,但对我来说,这不是一条路要走。如果可能的话,教客户是一个更好的选择。