我有一个弹性搜索索引,分为3个节点,9个分片,2个副本。该索引包含约2亿个文档。我想要做的是将最常用的其他字段聚合为某个字段值。
我试图将大多数其他字段值用于美国作为国家/地区。我面临的一个奇怪的问题是,让我们说美国有1000万份文件,聚合大约需要一分钟才能完成,而另一个国家则说法国有100万份文件,聚合也需要大约1分钟完成。所以我问自己我做错了什么,或者弹性搜索如何进行聚合。
这是我的查询
{
"query" : {
"bool": {
"must": {
"match": {
"country": "united states"
}
}
}
},
"size": 0,
"aggs" : {
"organization" : {
"terms" : {
"field" : "organization",
"order" : { "_count": "desc" },
"size" : 1
}
},
"city" : {
"terms" : {
"field" : "city",
"order" : { "_count": "desc" },
"size" : 1
}
}
}
}
查询运行时的线程池,删除除了搜索
之外只有0的统计信息curl http://localhost:9200/_cat/thread_pool
elastic-2 management 1 0 0
elastic-2 search 3 0 0
elastic-3 management 1 0 0
elastic-3 search 0 0 0
elastic-1 management 1 0 0
elastic-1 search 6 0 0