我写信是想问:构造查询以满足以下要求的最佳方法是什么:在布尔查询的筛选子句中指定日期范围,以便gte基于索引中最早的文档。
请考虑:
...
"filter":
{
"range":
{
"CustomElasticSearchDateTime":
{
"gte": "OLDEST DOCUMENT", <-- (How to get the oldest document here based on the index being searched?)
"lte": "OLDEST DOCUMENT + 6M/M",
"relation": "WITHIN"
}
}
}
...
字符串
以下是我目前如何从索引中获取最旧的文档:
{
"size": 1,
"_source": false,
"sort":
{
"CustomElasticSearchDateTime": "asc"
},
"query":
{
"match_all": {}
}
}
型
但是似乎不可能将这个查询添加到上一个查询的gte下;或者,这是可能的。这里的任何帮助都将非常感谢。
谢谢你
1条答案
按热度按时间wbrvyc0a1#
(目前)不可能在单个查询中进行这种查询。
解决这个问题的另一种方法是利用固定间隔为6个月的
date_histogram
aggregation。第一个桶必须包含从最早的文档到6个月后创建的所有文档:字符串
这可能不是你想要的,但这是最接近你需要的解决方案,至少我是这样理解的。