我使用elasticsearch创建了映射。这是映射属性
"properties": {
"userPermissions": {
"type": "nested",
"properties": {
"prm": {
"type": "string"
},
"id": {
"type": "string"
}
}
},
"pSPermissions": {
"type": "nested",
"properties": {
"prm": {
"type": "string"
},
"id": {
"type": "string"
}
}
}
}
我想从这些字段中检索整体不同的项目:userPermissions.id
,pSPermissions.id
。
我可以在单个path
下实现多个字段的不同值。我们需要使用脚本从多个字段中检索术语。
GET / permissions / perm / _search?pretty = true& search_type = count
{
"aggs": {
"Parents": {
"nested": {
"path": "userPermissions"
},
"aggs": {
"permCount": {
"terms": {
"script": "[doc['userPermissions.id'].value,doc['userPermissions.prm'].value]",
"size": 5000
}
}
}
}
}
}
但我不知道如何跨越不同路径userPermissions
和pSPermissions
实现目标。它可以实现吗?
答案 0 :(得分:1)
您可以使用以下脚本实现它:
barbar
它的作用是检索所有Bar
值和所有"script": "doc['userPermissions.id'].values + doc['userPermissions.prm'].values",
值,然后使用groovy的userPermissions.id
运算符将它们连接成一个数组。
<强>更新强>
跟进您的评论,您可以使用此脚本以与您在相同路径下的字段所做的类似方式实现您想要的目标:
userPermissions.prm