跨多个索引的Elasticsearch搜索-忽略不存在的索引

我有弹性簇,其中我的索引包含当前日期-例如:

example-idex-2016-07-26 --> exists

example-idex-2016-07-25 --> exists

example-idex-2016-07-24 --> doesn't exist (weekend)

...

是否可以跨多个索引查询,而忽略不存在的索引。例如,这 :

return elastic.search({

index: [

"example-idex-2016-07-26",

"example-idex-2016-07-25"],

],

...

});

而这 :

return elastic.search({

index: [

"example-idex-2016-07-25",

"example-idex-2016-07-24"], //this doesn't exist

],

...

});

我希望第二个示例仅从25日起返回文档。

回答:

如果您使用通配符example-idex-2016-07-*,则无需担心,ES会找出匹配的索引。

如果您真的想枚举索引,可以ignoreUnavailable:

truesearch调用中指定:

return elastic.search({

index: [

"example-idex-2016-07-25",

"example-idex-2016-07-24"], //this doesn't exist

],

ignoreUnavailable: true,

...

});

或者,您也可以使用索引别名并仅查询该别名。在创建新索引时,您还将该别名添加到索引中。这样做的好处是您的客户端代码不需要更改,并且始终仅查询别名,即隐式地具有该别名的所有索引。

以上是 跨多个索引的Elasticsearch搜索-忽略不存在的索引 的全部内容, 来源链接: utcz.com/qa/434686.html

回到顶部