我有弹性簇,其中我的索引包含当前日期-例如:
example-idex-2016-07-26 --> exists example-idex-2016-07-25 --> exists example-idex-2016-07-24 --> doesn't exist (weekend) ...
是否可以跨多个索引查询,而忽略不存在的索引。例如,这 WORKS :
return elastic.search({ index: [ "example-idex-2016-07-26", "example-idex-2016-07-25"], ], ... });
而这 会返回404 :
return elastic.search({ index: [ "example-idex-2016-07-25", "example-idex-2016-07-24"], //this doesn't exist ], ... });
我希望第二个示例仅从25日起返回文档。
如果您使用通配符example-idex-2016-07-*,则无需担心,ES会找出匹配的索引。
example-idex-2016-07-*
如果您真的想枚举索引,可以ignoreUnavailable: true在search调用中指定:
ignoreUnavailable: true
search
return elastic.search({ index: [ "example-idex-2016-07-25", "example-idex-2016-07-24"], //this doesn't exist ], ignoreUnavailable: true, ... });
或者,您也可以使用索引别名并仅查询该别名。在创建新索引时,您还将该别名添加到索引中。这样做的好处是您的客户端代码不需要更改,并且始终仅查询别名,即隐式地具有该别名的所有索引。