我正在尝试使用Elasticsearch-php 6.0构建分面搜索,但我很难弄清楚如何使用日期范围聚合 . 这是我正在尝试做的事情:
映射样本:
"mappings": {
"_doc": {
"properties": {
...
"timeframe": {
"properties": {
"gte": {
"type": "date",
"format": "yyyy"
},
"lte": {
"type": "date",
"format": "yyyy"
}
}
}
...
在我的文档中,我有这个属性:
"timeframe":[{"gte":"1701","lte":"1800"}]
我希望能够显示带有日期范围滑块的构面,用户可以在其中输入范围(最小值 - 最大值) . 理想情况下,在给定当前查询的情况下,Elasticsearch聚合应自动返回这些最小值 .
这是我试图用“伪代码”写的聚合,给你一个想法:
"aggs": {
"date_range": {
"field": "timeframe",
"format": "yyyy",
"ranges": [{
"from": min(timeframe.gte),
"to": max(timeframe.lte)
}]
}
}
我想我需要使用日期范围聚合,最小/最大聚合和管道聚合,但是我读的越多,我就越困惑 . 我找不到如何把整个世界粘在一起 .
请记住,如果这不是实现此目的的正确方法,我可以更改映射和/或文档结构 .
谢谢 !