【发布时间】:2014-05-06 16:51:38
【问题描述】:
当尝试在一个循环中使用多个聚合进行查询时,查询时间会变得非常慢。 结果应该给我每种类型的计数。
我发送的 JSON 是这样的
GET events / _search {
"size": 0,
"aggs": {
"count_by_types_38": {
"filter": {
"term": {
"data.campaign_id": 38
}
},
"aggs": {
"field": {
"terms": {
"field": "_type",
"min_doc_count": 0
}
}
}
},
"count_by_types_39": {
"filter": {
"term": {
"data.campaign_id": 39
}
},
"aggs": {
"field": {
"terms": {
"field": "_type",
"min_doc_count": 0
}
}
}
},
"count_by_types_40": {
"filter": {
"term": {
"data.campaign_id": 40
}
},
"aggs": {
"field": {
"terms": {
"field": "_type",
"min_doc_count": 0
}
}
}
},
"count_by_types_41": {
"filter": {
"term": {
"data.campaign_id": 41
}
},
"aggs": {
"field": {
"terms": {
"field": "_type",
"min_doc_count": 0
}
}
}
},
"count_by_types_42": {
"filter": {
"term": {
"data.campaign_id": 42
}
},
"aggs": {
"field": {
"terms": {
"field": "_type",
"min_doc_count": 0
}
}
}
},
"count_by_types_44": {
"filter": {
"term": {
"data.campaign_id": 44
}
},
"aggs": {
"field": {
"terms": {
"field": "_type",
"min_doc_count": 0
}
}
}
},
"count_by_types_45": {
"filter": {
"term": {
"data.campaign_id": 45
}
},
"aggs": {
"field": {
"terms": {
"field": "_type",
"min_doc_count": 0
}
}
}
},
"count_by_types_46": {
"filter": {
"term": {
"data.campaign_id": 46
}
},
"aggs": {
"field": {
"terms": {
"field": "_type",
"min_doc_count": 0
}
}
}
},
"count_by_types_47": {
"filter": {
"term": {
"data.campaign_id": 47
}
},
"aggs": {
"field": {
"terms": {
"field": "_type",
"min_doc_count": 0
}
}
}
},
"count_by_types_48": {
"filter": {
"term": {
"data.campaign_id": 48
}
},
"aggs": {
"field": {
"terms": {
"field": "_type",
"min_doc_count": 0
}
}
}
}
},
"query": {
"match_all": {}
}
}
对于循环中的每次迭代,我都会更改 data.campaign_id。
我尝试过使用较少数量的聚合,但它并没有真正改变任何东西。
8-12 次迭代大约需要 40 秒 ES 返回结果,然后我将其杀死。
如果我只使用一个聚合运行查询,则没有问题。
我做错了吗?
【问题讨论】:
-
你检查过你的JVM的状态了吗?
-
A GET _nodes gives me "mem": { "heap_init_in_bytes": 268435456, "heap_max_in_bytes": 259719168, "non_heap_init_in_bytes": 24313856, "non_heap_max_in_bytes": 224395264, "direct_max_in_bytes": 259719168 }跨度>
-
我说的更多是htop的日志还是监控工具
-
好的。我的头插件说“集群健康:黄色(52 个中的 18 个)”。我真的不明白为什么它是黄色的
-
它是黄色的,因为您还没有使用您的副本。如果您希望禁用副本,您可以在创建索引时指定。当然,禁用副本有其后果。
标签: elasticsearch