I thought it may be useful to summarise what we're trying to do:

Let the document structure be:

contest:
  contestant: // [array]
      id: string
      data: // [array]
        run: integer // note that I've added this to highlight one of our 
usecases
        timing: integer
        // ... other attributes


We don't have control of this structure. Clients of our service are free to 
define it as they wish (hence, I guess we need to use dynamic templates to 
define the mappings).
The structure may be *arbitrarily *deep, with nested array types.

The types of aggregations the client would like to make:
1. find total of timing by contestant id (explained very nicely with your 
answer)
2. find average of timing across all contestants by run. In this case the 
grouping is by "run"

I can see how to each of the above, albeit with different mappings. What's 
required is one mapping a flexible way to do both (ideally with full Kibana 
support).

thanks
Fuzz.

On Thursday, 3 April 2014 16:53:02 UTC+1, dazraf wrote:
>
> Hi Mark,
>
> thanks again for helping with this. 
>
> I'm wondering why, in the solution, the mapping doesn't include the data 
> node in the tree.
> In fact when I explicitly state the data node as a property of contestant, 
> the aggregations come back blank.Gist:
> https://gist.github.com/dazraf/9957039
>
> many thanks!
>
> On Wednesday, 2 April 2014 18:31:29 UTC+1, Mark Harwood wrote:
>>
>> A rough Gist here that sums OK with one level of nesting: 
>> https://gist.github.com/markharwood/9938890
>>
>>
>>
>> On Wednesday, April 2, 2014 5:13:22 PM UTC+1, dazraf wrote:
>>>
>>> Hi,
>>> I've also experimented with nested types using dynamic templates. 
>>> Interesting (empty!) aggregation results!
>>> Gist: https://gist.github.com/dazraf/9937198
>>>
>>> Would be grateful if anyone can shed some light on this please?
>>>
>>> Thank you.
>>>
>>> On Wednesday, 2 April 2014 16:05:00 UTC+1, dazraf wrote:
>>>>
>>>> Hi,
>>>>
>>>> Gist: https://gist.github.com/dazraf/9935814
>>>>
>>>> Basically, I'd like to be able to aggregate a field of an array of 
>>>> observations, grouped by an ancestor/parent id. 
>>>> So for example (see gist): Aggregate the timings per contestant across 
>>>> a set of contests.
>>>>
>>>> I realise that the data can be structured differently - effectively 
>>>> flattened to a document per contest-contestant-contest. 
>>>> However, I don't have the luxury of doing this in the real-world case. 
>>>>
>>>> Any help much appreciated.
>>>>
>>>> Thank you.
>>>>
>>>

-- 
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/bddbde7e-bcb7-4882-a67c-4c9508cca282%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to