【发布时间】:2017-09-01 06:18:21
【问题描述】:
我正在尝试编写一个查询,如果文档在特定数据范围内有 X 次访问,则仅返回文档。即只有在“2017-01-01”和“2017-12-31”之间有2次访问时才返回guid-docA
**Example Data Documents**
{
"_id": "guid-docA"
"visits": [
{
"name": "Sarah",
"visitDate": "2013-02-27T00:00:00.000Z"
},
{
"name": "John",
"visitDate": "2017-02-27T00:00:00.000Z"
},
{
"name": "Jim",
"visitDate": "2017-12-27T00:00:00.000Z"
}
]
},
{
"_id": "guid-docB"
"visits": [
{
"name": "Brian",
"visitDate": "2013-02-27T00:00:00.000Z"
},
{
"name": "Kerri",
"visitDate": "2016-02-27T00:00:00.000Z"
},
{
"name": "Julia",
"visitDate": "2017-12-27T00:00:00.000Z"
}
]
}
我已经尝试过脚本过滤器,如果访问次数大于 2 则可以返回数据,但我还没有弄清楚如果他们在给定年份的访问次数超过 1(或 X)次如何获取它。
"filter": {
"script": {
"script": "_source.visits.size() > 1"
}
}
不确定如何对指定的计数应用逻辑。
在此先感谢您。
【问题讨论】:
标签: elasticsearch nested