【发布时间】:2014-12-05 20:46:02
【问题描述】:
我在理解 ES 查询系统的底层时遇到了很多问题。
例如,我有以下查询:
{
"size": 0,
"query": {
"bool": {
"must": [
{
"term": {
"referer": "www.xx.yy.com"
}
},
{
"range": {
"@timestamp": {
"gte": "now",
"lt": "now-1h"
}
}
}
]
}
},
"aggs": {
"interval": {
"date_histogram": {
"field": "@timestamp",
"interval": "0.5h"
},
"aggs": {
"what": {
"cardinality": {
"field": "host"
}
}
}
}
}
}
那个请求得到太多结果:
“状态”:500,“原因”: “ElasticsearchException [org.elasticsearch.common.breaker.CircuitBreakingException: 数据太大,字段 [@timestamp] 的数据将大于限制 [3200306380/2.9gb]];嵌套: UncheckedExecutionException[org.elasticsearch.common.breaker.CircuitBreakingException: 数据太大,字段 [@timestamp] 的数据将大于限制 [3200306380/2.9gb]];嵌套:CircuitBreakingException [数据太 大,字段 [@timestamp] 的数据将大于限制 [3200306380/2.9gb]]; "
我已经尝试过这个请求:
{
"size": 0,
"filter": {
"and": [
{
"term": {
"referer": "www.geoportail.gouv.fr"
}
},
{
"range": {
"@timestamp": {
"from": "2014-10-04",
"to": "2014-10-05"
}
}
}
]
},
"aggs": {
"interval": {
"date_histogram": {
"field": "@timestamp",
"interval": "0.5h"
},
"aggs": {
"what": {
"cardinality": {
"field": "host"
}
}
}
}
}
}
我想过滤数据以获得正确的结果,任何帮助将不胜感激!
【问题讨论】:
标签: elasticsearch