I'm trying to do a stats aggregation on the list length using a script but
I'm getting errors. For this data,
PUT test_groups/group/1
{
"name":"1",
"members":[
{
"name":"m1"
}
]
}
PUT test_groups/group/2
{
"name":"2",
"members":[
{
"name":"m1"
},
{
"name":"m2"
}
]
}
and this query:
GET test_groups/group/_search
{
"aggs": {
"group_members": {
"filter": {
"exists": {
"field": "members"
}
},
"aggs": {
"length": {
"stats": {
"script": "doc['members'].values.length"
}
}
}
}
}
}
I get an error stating that the members field does not exist in type group:
{
"took": 4,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 3,
"failed": 2,
"failures": [
{
"index": "test_groups",
"shard": 2,
"status": 500,
"reason": "QueryPhaseExecutionException[[test_groups][2]:
query[ConstantScore(cache(_type:group))],from[0],size[10]: Query Failed
[Failed to execute main query]]; nested:
GroovyScriptExecutionException[ElasticsearchIllegalArgumentException[No
field found for [members] in mapping with types [group]]]; "
},
{
"index": "test_groups",
"shard": 3,
"status": 500,
"reason": "QueryPhaseExecutionException[[test_groups][3]:
query[ConstantScore(cache(_type:group))],from[0],size[10]: Query Failed
[Failed to execute main query]]; nested:
GroovyScriptExecutionException[ElasticsearchIllegalArgumentException[No
field found for [members] in mapping with types [group]]]; "
}
]
},
"hits": {
"total": 0,
"max_score": null,
"hits": []
},
"aggregations": {
"group_members": {
"doc_count": 0,
"length": {
"count": 0,
"min": null,
"max": null,
"avg": null,
"sum": null
}
}
}
}
Is there a way to do this?
Best regards,
Jilles
--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/fcbce46c-6556-4e4e-b74a-2a4cbea915c6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.