跨多个索引的Elasticsearch搜索-忽略不存在的索引
我有弹性簇,其中我的索引包含当前日期-例如:
example-idex-2016-07-26 --> existsexample-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:
true在search
调用中指定:
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