Elasticsearch 可以在不指定字段的情况下按日期范围过滤吗?

Can Elasticsearch filter by a date range without specifying a field?

我有多个日期字段,我想要一个日期范围查询来过滤任何

例如,我的索引中可能有书籍,每本书可能有一个出版日期版本日期打印日期,以及作者的出生日期

映射很简单(使用 Elasticsearch.net Nest 生成):

"printDate" : {
    "type" : "date",
    "format" : "strict_date_optional_time||epoch_millis"
},

我查看了 range queries and query string ranges - 两者都明确需要字段名称,而且似乎不支持通配符。
例如,这没有找到任何东西,但是如果我使用真实的字段名称而不是 "*Date":

"filter": [
  {
    "range": {
      "*Date": {
        "gte": "2010-01-01T00:00:00",
        "lte": "2015-01-01T00:00:00"
      }
    }
  }
]

我也试过将 [2010-01-01 TO 2015-01-01] 放在查询字符串中,但是日期没有被正确解析——它还发现 201001 作为其他字符串的一部分(而且看起来其他日期)。
另一种选择是在 "should" 子句下列出每个字段并指定 "minimum_should_match":1,但这将使我维护所有日期字段的列表,这似乎不够优雅。

有没有办法在所有日期字段中搜索日期范围?

试试这个查询:

{
  "query": {
    "query_string": {
      "default_field": "*Date", 
      "query": "[2010-01-01T00:00:00 TO 2015-01-01T00:00:00]"
    }
  }
}