Thanks! Now it works. Best,
Jilles On Friday, January 23, 2015 at 3:04:55 AM UTC+1, Masaru Hasegawa wrote: > > Hi, > > Objects are flattened in index level. Nothing is indexed as “member” > that’s why you get the exception. > Using doc[‘members.name'] instead of doc[‘members’] in script should > work. > > > Masaru > > > On January 22, 2015 at 19:10:25, Jilles van Gurp (jilles...@gmail.com > <javascript:>) wrote: > > 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 elasticsearc...@googlegroups.com <javascript:>. > > 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. > > > > -- 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+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/b3f877a9-633e-4fe8-b4ea-3869e833782f%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.