elasticsearch 获取更多字段,而不是Elasticsearch聚合中的一个字段
我是Elasticsearch新手,我的程序有问题。elasticsearch 获取更多字段,而不是Elasticsearch聚合中的一个字段,elasticsearch,nosql,elasticsearch,Nosql,我是Elasticsearch新手,我的程序有问题。 为了像SQL中的“GROUPBY”语句那样对结果进行分组。我使用了聚合。 但我意识到这里有一个问题我需要解决。我使用以下语句对结果进行分组: { "aggs": { "agg1": { "terms": { "field": "field1" }, "aggs": { "agg2": { "terms": { "fiel
为了像SQL中的“GROUPBY”语句那样对结果进行分组。我使用了聚合。
但我意识到这里有一个问题我需要解决。我使用以下语句对结果进行分组:
{
"aggs": {
"agg1": {
"terms": {
"field": "field1"
},
"aggs": {
"agg2": {
"terms": {
"field": "field2"
},
"aggs": {
"agg3": {
"terms": {
"field": "field3"
}
}
}
}
}
}
}
}
我的问题是:field2和field3的值取决于field1的值,所以如果可以得到field1的值,也可以得到field2和field3的值。因此,像上面那样进行聚合将花费大量时间来完成我的程序(我已经测试过了,并且意识到它比仅对字段1进行分组要慢6倍)。
所以我的问题是:是否可以只对field1进行分组(只使用一个“aggs”),同时也获取field2和field3的值?
如果没有,那么还有其他可能的方法来完成我的工作吗?
提前感谢:)如果我理解正确,您正在寻找聚合,您可以包含任意数量的字段,请尝试此
{
"size": 0,
"aggs": {
"agg1": {
"terms": {
"field": "field1"
},
"aggs": {
"include_fields": {
"top_hits": {
"size": 100,
"_source": {
"include": [
"field2",
"field3"
]
}
}
}
}
}
}
}
非常感谢您,使“大小”等于1是我所需要的。很高兴我可以帮助您,您可以根据您想要的大小,默认值为10