如何在弹性搜索中获取嵌套对象的数组计数
How to get array count of nested object in elastic-search
有人可以帮我获取弹性搜索中嵌套对象的总计数吗,假设我的弹性搜索对象映射为:
{
"employe": {
"dynamic": "strict",
"properties": {
"empId":{
"type": "keyword"
},
"entities": {
"type": "nested"
}
}
}
}
entities 是带有一些其他对象的数组类型。我想获得过滤项目的实体数。
我尝试了一些弹性搜索查询,但它不起作用
{
"query": {
"bool": {
"filter": [
{
"terms": {
"empId": [12121,2121212]
}
}
]
}
},
"size": 0,
"aggs": {
"entities_agg": {
"sum": {
"field": "entities",
"script": {
"inline": "doc['entities'].values.size()"
}
}
}
}
}
您不能通过文档值访问嵌套数据,您需要访问源文档,如下所示:
{
"query": {
"bool": {
"filter": [
{
"terms": {
"empId": [
12121,
2121212
]
}
}
]
}
},
"size": 0,
"aggs": {
"entities_agg": {
"sum": {
"script": {
"inline": "params._source.entities.size()"
}
}
}
}
}
有人可以帮我获取弹性搜索中嵌套对象的总计数吗,假设我的弹性搜索对象映射为:
{
"employe": {
"dynamic": "strict",
"properties": {
"empId":{
"type": "keyword"
},
"entities": {
"type": "nested"
}
}
}
}
entities 是带有一些其他对象的数组类型。我想获得过滤项目的实体数。 我尝试了一些弹性搜索查询,但它不起作用
{
"query": {
"bool": {
"filter": [
{
"terms": {
"empId": [12121,2121212]
}
}
]
}
},
"size": 0,
"aggs": {
"entities_agg": {
"sum": {
"field": "entities",
"script": {
"inline": "doc['entities'].values.size()"
}
}
}
}
}
您不能通过文档值访问嵌套数据,您需要访问源文档,如下所示:
{
"query": {
"bool": {
"filter": [
{
"terms": {
"empId": [
12121,
2121212
]
}
}
]
}
},
"size": 0,
"aggs": {
"entities_agg": {
"sum": {
"script": {
"inline": "params._source.entities.size()"
}
}
}
}
}