Java Spring数据elasticsearch子聚合未在聚合结果中提供父子结果
我正在使用spring数据elastisearch并构造了一个带有子聚集的查询。当我调试和复制所创建查询的值并从sense plugin/postman执行时,我通过对两个字段(即一个字段在另一个字段中)的子聚合得到正确的结果,但是程序返回的响应不包含另一个字段在另一个字段中,而只包含聚合结果中的父级字段 你能告诉我我可能做错了什么吗。请参阅下文,了解更多信息 文档骨架类似于Java Spring数据elasticsearch子聚合未在聚合结果中提供父子结果,java,
elasticsearch,spring-data,Java,
elasticsearch,Spring Data,我正在使用spring数据elastisearch并构造了一个带有子聚集的查询。当我调试和复制所创建查询的值并从sense plugin/postman执行时,我通过对两个字段(即一个字段在另一个字段中)的子聚合得到正确的结果,但是程序返回的响应不包含另一个字段在另一个字段中,而只包含聚合结果中的父级字段 你能告诉我我可能做错了什么吗。请参阅下文,了解更多信息 文档骨架类似于 { ... "gender":"Men", "category":"Shirts", .
{
...
"gender":"Men",
"category":"Shirts",
.....
} ,
{
...
"gender":"Men",
"category":"Pants",
.....
},
{
...
"gender":"Women",
"category":"Pants",
.....
}
...
"aggregations": {
"gender": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "Men",
"doc_count": 4,
"category": {
"buckets": [
{
"key": "shirts",
"doc_count": 2
},
{
"key": "pants",
"doc_count": 2
}
]
}
},
{
"key": "Women",
"doc_count": 2,
"category": {
"buckets": [
{
"key": "pants",
"doc_count": 2
}
]
}
}
]
}
}
....
等等
聚合中的预期输出如下
{
...
"gender":"Men",
"category":"Shirts",
.....
} ,
{
...
"gender":"Men",
"category":"Pants",
.....
},
{
...
"gender":"Women",
"category":"Pants",
.....
}
...
"aggregations": {
"gender": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "Men",
"doc_count": 4,
"category": {
"buckets": [
{
"key": "shirts",
"doc_count": 2
},
{
"key": "pants",
"doc_count": 2
}
]
}
},
{
"key": "Women",
"doc_count": 2,
"category": {
"buckets": [
{
"key": "pants",
"doc_count": 2
}
]
}
}
]
}
}
....
Java代码用于添加术语聚合类型的子聚合
for (Object aggregationField : request.getAggregationFields()) {
TermsBuilder termBuilder = AggregationBuilders.terms(aggregationField.toString())
.field(aggregationField.toString()).size(0);
if(aggregationField.toString().equals("gender"))
{
TermsBuilder platformBuilder = AggregationBuilders.terms("category").field("category").size(0);
termBuilder.subAggregation(platformBuilder);
}
nativeSearchQueryBuilder.addAggregation(termBuilder);
}
您可能应该粘贴Java代码,这样会更容易帮助您。@Val谢谢,我已经编辑了问题并添加了更多信息。如果我能正确地解释自己,请告诉我您可能应该粘贴Java代码,这样会更容易帮助您。@Val谢谢,我已经编辑了问题并添加了更多信息。请让我知道我是否能正确地解释我自己