我有以下两个文件:ElasticSearch - 问题与子项的聚集与数组字段
{
"title":"The Avengers",
"year":2012,
"casting":[
{
"name":"Robert Downey Jr.",
"category":"Actor",
},
{
"name":"Chris Evans",
"category":"Actor",
}
]
}
和:
{
"title":"The Judge",
"year":2014,
"casting":[
{
"name":"Robert Downey Jr.",
"category":"Producer",
},
{
"name":"Robert Duvall",
"category":"Actor",
}
]
}
我想执行的聚合,基于两个领域:铸造。名称和casting.category。
我尝试使用基于casting.name字段的TermsAggregation,并使用subaggregation,这是另一个基于casting.category字段的TermsAggregation。
问题是,对于“克里斯埃文斯”条目,ElasticSearch为所有类别(Actor,Producer)设置存储桶,而它应该只设置1个存储桶(Actor)。
似乎在所有casting.category事件和所有casting.name事件之间存在笛卡尔积。 它的行为像数组字段(铸造),而我没有问题与简单的领域(如标题或年份)。
我也尝试使用嵌套聚合,但可能不正确,ElasticSearch抛出一个错误,告诉casting.category不是嵌套字段。
这里的任何想法?
好吧,这是伟大的,谢谢澄清! – julien
这太棒了 - 很高兴我能帮上忙。你能接受答案吗? –