我正在创建基于日期的弹性索引,例如-logs-2017-06-10,logs-2018-07-10,logs-2019-06-11,日期后缀可以是任何有效日期。
如何将搜索查询限制为仅针对特定天数索引进行搜索。
例如,如果我想在2018年6月9日至2018年6月11日之间搜索,则仅以下提及的索引应针对我的查询进行搜索
logs-2018-06-09, logs-2018-06-10 and logs-2018-06-11
我尝试使用通配符*,但此处无济于事。
logs-2018-06-*
将在索引logs-2018-06-01 to logs-2018-06-30
中搜索,这不是我的查询。
我怎么只能将其限制为
logs-2018-06-09,logs-2018-06-10 and logs-2018-06-11
答案 0 :(得分:0)
GET /_search
{
"query": {
"indices" : {
"indices" : ["index1", "index2"],
"query" : { "term" : { "tag" : "wow" } },
"no_match_query" : { "term" : { "tag" : "kow" } }
}
}
}
发件人:https://www.elastic.co/guide/en/elasticsearch/reference/5.4/query-dsl-indices-query.html
答案 1 :(得分:0)
我没有找到任何方法来确定可以运行搜索查询的动态索引列表。
现在,作为替代方案,我将针对所有索引并基于日期范围查询运行搜索查询。
GET logs-2019-*/_search
{
"query": {
"range" : {
"timestamp" : {
"time_zone": "+01:00",
"gte": "2015-01-01 00:00:00",
"lte": "now"
}
}
}
}```