【发布时间】:2016-02-19 17:07:31
【问题描述】:
我有这种类型的文件
{
"host-ip": "192.168.0.1",
"HOST_END_iso": "2016-02-19T09:30:41+01:00"
}
我成功查询 ES 得到一个随机条目和 host-ip 的聚合
{
"query": {
"match_all": {}
},
"size": 1,
"aggs": {
"rating": {
"terms": {
"field": "host-ip",
"size": 0,
"shard_size": 0
}
}
}
}
我现在想过滤结果并获取两个日期之间的文档。 query 部分变得更加复杂:
{
"query": {
"filtered": {
"filter": {
"query": {
"match_all": {}
},
"terms": {
"range": {
"HOST_END_iso": {
"gt": "2015-02-19T09:30:41+01:00",
"lt": "2016-02-19T09:30:41+01:00"
}
}
}
}
},
"size": 1
},
"aggs": {
"rating": {
"terms": {
"field": "host-ip",
"size": 0,
"shard_size": 0
}
}
}
}
返回一条记录,但没有聚合。为什么?
请注意,我必须将限制返回元素数量的size 移动到第一个query 的范围内。 我不明白我为什么需要这样做:如果我将其保留在与query 和aggs 相同的级别(就像在第一个-successful- 示例中一样),我将不再受到限制到 1 个元素,但我得到默认的 10(所以 size 没有被考虑在内,我仍然没有得到 aggs)
【问题讨论】:
标签: elasticsearch