数组字段的弹性搜索日期范围过滤器
Elastic Search Date Range filter for Array fields
我正在寻找如何从数组过滤日期范围。示例数据如下
"airings":[{
"startTime":"2015-08-29T10:00:00+0000",
"endTime":"2015-08-30T21:30:00+0000"
},{
"startTime":"2015-08-29T10:00:00+0000",
"endTime":"2015-08-31T21:30:00+0000"
}]
需要一个日期范围过滤器,搜索给定startTime和endTime之间的广播。我有下面的查询,但是语法不正确。
{
"query": {
"bool": {
"must": [
{
"range":
{
"airings.startTime": {
"gte": "2015-08-30T12:00:00.000Z"
},
"airings.endTime": {
"lte": "2015-08-30T01:00:00.000Z"
}
}
}
]
}
},
"from": 0,
"size": 128
}
有没有人可以帮忙看看这个日期范围功能是否在数组上可用?这类搜索还有其他选择吗?谢谢你的帮助。
试试这个:
{
"filter": {
"bool": {
"must": [
{
"range": {
"airings.startTime": {
"gte": "2015-08-28T12:00:00.000Z"
}
}
},
{
"range": {
"airings.endTime": {
"lte": "2015-08-31T01:00:00.000Z"
}
}
}
]
}
}
}
下面是我用来测试它的一些代码:
http://sense.qbox.io/gist/8f9e747b3e3d8824ee9933b6ceb42b0f98532d28POST /flights/airings
{
"startTime":"2015-08-29T10:00:00+0000",
"endTime":"2015-08-30T21:30:00+0000"
}
POST /flights/airings
{
"startTime":"2015-08-29T10:00:00+0000",
"endTime":"2015-08-31T21:30:00+0000"
}
GET /flights/airings/_search
{
"query" : {
"filtered" : {
"query" : { "match_all" : {}},
"filter" : {
"bool" : {
"must" : [{
"range": {
"startTime": {
"lte": "2015-08-30T12:00:00.000Z"
}
}
},
{
"range": {
"endTime": {
"gte": "2015-08-30T01:00:00.000Z"
}
}
}]
}
}
}
}
}
相关文章:
- 正在更新起始日期角度日期范围选择器中的日期选择
- 如何从日期范围选择器中获取两个日期
- 基于日期范围的一组日期范围内的天数
- 过滤日期范围 angularjs 时出错
- 如何在引导日期选取器中限制可选择的日期范围
- 如何在 jQuery 日期选择器 UI 中阻止多个日期范围
- 根据主干集合中的日期范围进行选择
- 关于如何将日期输入值与最小/最大日期范围进行比较的建议
- 查找某个日期范围内的可用天数
- 正在将日期范围选择器转换为角度指令
- 在日期范围内查找丢失日期的最有效方法是什么
- XML查询日期范围查找
- 更改日期范围输入组件的格式
- 24小时格式的日期范围选取器
- jQuery:检索日期选择器日期,检查是否在日期范围内,显示/隐藏字段
- 如何在eonasdan Bootstrap 3 Datepicker上重置链接选取器的日期范围
- 从日期范围滑块访问最小值和最大值
- 什么是JavaScript日期范围
- 正在将日期范围选取器的开始日期设置为空
- RobinHubots jquery.inputmask日期范围