Re: Range Filter Aggregation on array

2014-10-08 Thread Rémi Nonnon
Hi,

It's ok, I think you are right, nested will be the solution.

Regards,
Rémi.

Le mardi 7 octobre 2014 11:38:44 UTC+2, David Pilato a écrit :
>
> I have no idea. It's hard to understand what you exactly did without a 
> full reproduction.
> A SENSE script posted as a GIST would help a lot I think.
>
> -- 
> *David Pilato* | Technical Advocate | *elasticsearch.com 
> *
> david@elasticsearch.com 
> @dadoonet  | @elasticsearchfr 
>  | @scrutmydocs 
> 
> 
>
>
>
> Le 7 octobre 2014 à 10:49:54, Rémi Nonnon (remi@gmail.com 
> ) a écrit:
>
> Hi, 
>
> Thanks for your immediate help! 
> (sorry i deleted this post because I didn't find how to edit it. I posted 
> a new one)
>
> I did it with nested documents but the array seems to be faster on other 
> aggregations like extended stats or percentiles then I wondered if my 
> filters are well written.
>
> Thanks again.
>
>  
> Le mardi 7 octobre 2014 10:38:43 UTC+2, David Pilato a écrit : 
>>
>>  One of the solution I can think is by using nested documents for your 
>> array.
>>  In that case, each element of the array will be seen as the document.
>>  
>>  Hope this helps
>>
>>  
>>  -- 
>> * David Pilato* | Technical Advocate | *elasticsearch.com 
>> *
>>  david@elasticsearch.com
>>  @dadoonet  | @elasticsearchfr 
>>  | @scrutmydocs 
>> 
>>   
>>
>>  
>>   
>> Le 7 octobre 2014 à 10:36:28, Rémi Nonnon (remi@gmail.com) a écrit:
>>
>>  Hi all, 
>>
>> I have some troubles when I try to use Range Filter aggregation on an 
>> array.
>>
>> Example of 1 document :
>>  ```json
>> {
>>"_index": "test",
>>"_type": "values",
>>"_id": "1",
>>"_version": 1,
>>"found": true,
>>"_source": {
>>   "array": [927,425,455,120]
>> }
>> }
>> ```
>>  
>> For all my "values" document, I'd like to count for "array" field how 
>> many numbers are less than 200 and how many are greater than 500.
>>
>> I tried this aggregation :
>>
>>  GET /test/values/_search
>> ```json
>> {
>>   "aggs" : {
>> "less" : {
>>   "filter":{"range":{"array":{ "lt" : 200}}}
>> },
>> "greater" : {
>>"filter":{"range":{"array":{ "gt" : 500}}}
>> }
>>   }
>> }
>>  ```
>>
>> But the 1st filter count the number of documents which have an array 
>> containing a value <200 and the 2nd how many have a value >500.
>> What I'd like is to count how many values are <200 and how many are >500 
>> (not how many document).
>>
>> If I make a sum / min / max aggregation, it will be on each value in 
>> arrays but not with a filter.
>> Do you have an idea how to do that thing?
>>
>>
>> I did it with 2 script filters, it works, but the computing time is too 
>> bad :
>>
>> ```json
>>  { 
>>   "aggs" : {
>> "less" : {
>>   "sum":{
>> "script":" def sum = 0; doc['array'].values.each(){if(it < 200) 
>> sum++}; return sum;"}
>> },
>> "greater" : {
>>"sum":{
>>  "script":"def sum = 0; doc['array'].values.each(){if(it > 500) 
>> sum++}; return sum;"}
>> }
>>  }
>> ```
>>
>> Any Idea?
>> Thanks!
>>  --
>> 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.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/elasticsearch/d988da81-167f-48d2-b4c8-8e94956bc333%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 elasticsearc...@googlegroups.com .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/elasticsearch/ea6b7b2e-2874-4387-b314-86a425e88b77%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/534e9e53-32af-4660-b56c-e63c01006b21%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout

Re: Range Filter Aggregation on array

2014-10-08 Thread Rémi Nonnon
Hi,

Thanks for your answer. I think it will be the solution.

Le mardi 7 octobre 2014 11:53:18 UTC+2, Adrien Grand a écrit :
>
> Hi,
>
> Aggregations can only count documents. So if you want to count values, you 
> need to model your data in such a way that each value is going to be a 
> document, for instance by using nested documents. Here is an example how 
> you could do that:
>
> DELETE test
>
> PUT test
> {
>   "mappings": {
> "test": {
>   "properties": {
> "array": {
>   "type": "nested",
>   "properties": {
> "value": {
>   "type": "integer"
> }
>   }
> }
>   }
> }
>   }
> }
>
> PUT test/test/1
> {
>   "array": [
> {
>   "value": 927
> },
> {
>   "value": 425
> },
> {
>   "value": 455
> },
> {
>   "value": 120
> }
>   ]
> }
>
> GET test/_search
> {
>   "aggs": {
> "array": {
>   "nested": {
> "path": "array"
>   },
>   "aggs": {
> "less_than_500": {
>   "filter": {
> "range": {
>   "array.value": {
> "to": 500
>   }
> }
>   }
> }
>   }
> }
>   }
> }
>
> On Tue, Oct 7, 2014 at 10:41 AM, Rémi Nonnon  > wrote:
>
>> Hi all,
>>
>> I have some troubles when I try to use Range Filter aggregation on an 
>> array.
>>
>> Example of 1 document :
>>
>> {
>>"_index": "test",
>>"_type": "values",
>>"_id": "1",
>>"_version": 1,
>>"found": true,
>>"_source": {
>>   "array": [927,425,455,120]
>> }
>> }
>>
>> For all my "values" document, I'd like to count, on "array" field, how 
>> many numbers are less than 200 and how many are greater than 500.
>>
>> I tried this aggregation :
>>
>> GET /test/values/_search
>>
>> {
>>   "aggs" : {
>> "less" : {
>>   "filter":{"range":{"array":{ "lt" : 200}}}
>> },
>> "greater" : {
>>"filter":{"range":{"array":{ "gt" : 500}}}
>> }
>>   }
>> }
>>
>> But the 1st filter count the number of documents which have an array 
>> containing a value <200 and the 2nd how many have a value >500. What I'd 
>> like is to count, for all documents, how many values (not how many 
>> document) are <200 and how many are >500.
>>
>> If I make a sum / min / max aggregation, it will be on each value in 
>> arrays but not with a filter. Do you have an idea how to do that thing?
>>
>> I did it with 2 script filters, it works, but the computing time is too 
>> bad :
>>
>> { 
>>   "aggs" : {
>> "less" : {
>>   "sum":{
>> "script":" def sum = 0; doc['array'].values.each(){if(it < 200) 
>> sum++}; return sum;"}
>> },
>> "greater" : {
>>"sum":{
>>  "script":"def sum = 0; doc['array'].values.each(){if(it > 500) 
>> sum++}; return sum;"}
>> }
>> }
>>
>> Any Idea? Thanks!
>>
>> -- 
>> 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 .
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/elasticsearch/76084de4-472f-4084-9a27-9f158d018043%40googlegroups.com
>>  
>> 
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> -- 
> Adrien Grand
>  

-- 
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/eea06154-57d6-4e49-a680-18fe77857be6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Range Filter Aggregation on array

2014-10-07 Thread Adrien Grand
Hi,

Aggregations can only count documents. So if you want to count values, you
need to model your data in such a way that each value is going to be a
document, for instance by using nested documents. Here is an example how
you could do that:

DELETE test

PUT test
{
  "mappings": {
"test": {
  "properties": {
"array": {
  "type": "nested",
  "properties": {
"value": {
  "type": "integer"
}
  }
}
  }
}
  }
}

PUT test/test/1
{
  "array": [
{
  "value": 927
},
{
  "value": 425
},
{
  "value": 455
},
{
  "value": 120
}
  ]
}

GET test/_search
{
  "aggs": {
"array": {
  "nested": {
"path": "array"
  },
  "aggs": {
"less_than_500": {
  "filter": {
"range": {
  "array.value": {
"to": 500
  }
}
  }
}
  }
}
  }
}

On Tue, Oct 7, 2014 at 10:41 AM, Rémi Nonnon  wrote:

> Hi all,
>
> I have some troubles when I try to use Range Filter aggregation on an
> array.
>
> Example of 1 document :
>
> {
>"_index": "test",
>"_type": "values",
>"_id": "1",
>"_version": 1,
>"found": true,
>"_source": {
>   "array": [927,425,455,120]
> }
> }
>
> For all my "values" document, I'd like to count, on "array" field, how
> many numbers are less than 200 and how many are greater than 500.
>
> I tried this aggregation :
>
> GET /test/values/_search
>
> {
>   "aggs" : {
> "less" : {
>   "filter":{"range":{"array":{ "lt" : 200}}}
> },
> "greater" : {
>"filter":{"range":{"array":{ "gt" : 500}}}
> }
>   }
> }
>
> But the 1st filter count the number of documents which have an array
> containing a value <200 and the 2nd how many have a value >500. What I'd
> like is to count, for all documents, how many values (not how many
> document) are <200 and how many are >500.
>
> If I make a sum / min / max aggregation, it will be on each value in
> arrays but not with a filter. Do you have an idea how to do that thing?
>
> I did it with 2 script filters, it works, but the computing time is too
> bad :
>
> {
>   "aggs" : {
> "less" : {
>   "sum":{
> "script":" def sum = 0; doc['array'].values.each(){if(it < 200) 
> sum++}; return sum;"}
> },
> "greater" : {
>"sum":{
>  "script":"def sum = 0; doc['array'].values.each(){if(it > 500) 
> sum++}; return sum;"}
> }
> }
>
> Any Idea? Thanks!
>
> --
> 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/76084de4-472f-4084-9a27-9f158d018043%40googlegroups.com
> 
> .
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Adrien Grand

-- 
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/CAL6Z4j5PSruuDE9%3Dm%3DHDOA2o0ZavQuCBmUvr_%3DdVaYxVtawkUA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: Range Filter Aggregation on array

2014-10-07 Thread David Pilato
I have no idea. It's hard to understand what you exactly did without a full 
reproduction.
A SENSE script posted as a GIST would help a lot I think.

-- 
David Pilato | Technical Advocate | elasticsearch.com
david.pil...@elasticsearch.com
@dadoonet | @elasticsearchfr | @scrutmydocs



Le 7 octobre 2014 à 10:49:54, Rémi Nonnon (remi.non...@gmail.com) a écrit:

Hi,

Thanks for your immediate help! 
(sorry i deleted this post because I didn't find how to edit it. I posted a new 
one)

I did it with nested documents but the array seems to be faster on other 
aggregations like extended stats or percentiles then I wondered if my filters 
are well written.

Thanks again.

 
Le mardi 7 octobre 2014 10:38:43 UTC+2, David Pilato a écrit :
One of the solution I can think is by using nested documents for your array.
In that case, each element of the array will be seen as the document.

Hope this helps


-- 
David Pilato | Technical Advocate | elasticsearch.com
david@elasticsearch.com
@dadoonet | @elasticsearchfr | @scrutmydocs



Le 7 octobre 2014 à 10:36:28, Rémi Nonnon (remi@gmail.com) a écrit:

Hi all,

I have some troubles when I try to use Range Filter aggregation on an array.

Example of 1 document :
```json
{
   "_index": "test",
   "_type": "values",
   "_id": "1",
   "_version": 1,
   "found": true,
   "_source": {
      "array": [927,425,455,120]
    }
}
```

For all my "values" document, I'd like to count for "array" field how many 
numbers are less than 200 and how many are greater than 500.

I tried this aggregation :

GET /test/values/_search
```json
{
  "aggs" : {
    "less" : {
      "filter":{"range":{"array":{ "lt" : 200}}}
    },
    "greater" : {
       "filter":{"range":{"array":{ "gt" : 500}}}
    }
  }
}
```

But the 1st filter count the number of documents which have an array containing 
a value <200 and the 2nd how many have a value >500.
What I'd like is to count how many values are <200 and how many are >500 (not 
how many document).

If I make a sum / min / max aggregation, it will be on each value in arrays but 
not with a filter.
Do you have an idea how to do that thing?


I did it with 2 script filters, it works, but the computing time is too bad :

```json
{ 
  "aggs" : {
    "less" : {
      "sum":{
        "script":" def sum = 0; doc['array'].values.each(){if(it < 200) sum++}; 
return sum;"}
    },
    "greater" : {
       "sum":{
         "script":"def sum = 0; doc['array'].values.each(){if(it > 500) sum++}; 
return sum;"}
    }
}
```

Any Idea?
Thanks!
--
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/d988da81-167f-48d2-b4c8-8e94956bc333%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/ea6b7b2e-2874-4387-b314-86a425e88b77%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/etPan.5433b483.614fd4a1.7bd4%40MacBook-Air-de-David.local.
For more options, visit https://groups.google.com/d/optout.


Re: Range Filter Aggregation on array

2014-10-07 Thread Rémi Nonnon
Hi,

Thanks for your immediate help! 
(sorry i deleted this post because I didn't find how to edit it. I posted a 
new one)

I did it with nested documents but the array seems to be faster on other 
aggregations like extended stats or percentiles then I wondered if my 
filters are well written.

Thanks again.

 
Le mardi 7 octobre 2014 10:38:43 UTC+2, David Pilato a écrit :
>
> One of the solution I can think is by using nested documents for your 
> array.
> In that case, each element of the array will be seen as the document.
>
> Hope this helps
>
>
> -- 
> *David Pilato* | Technical Advocate | *elasticsearch.com 
> *
> david@elasticsearch.com 
> @dadoonet  | @elasticsearchfr 
>  | @scrutmydocs 
> 
> 
>
>
>
> Le 7 octobre 2014 à 10:36:28, Rémi Nonnon (remi@gmail.com 
> ) a écrit:
>
> Hi all, 
>
> I have some troubles when I try to use Range Filter aggregation on an 
> array.
>
> Example of 1 document :
>  ```json
> {
>"_index": "test",
>"_type": "values",
>"_id": "1",
>"_version": 1,
>"found": true,
>"_source": {
>   "array": [927,425,455,120]
> }
> }
> ```
>  
> For all my "values" document, I'd like to count for "array" field how many 
> numbers are less than 200 and how many are greater than 500.
>
> I tried this aggregation :
>
>  GET /test/values/_search
> ```json
> {
>   "aggs" : {
> "less" : {
>   "filter":{"range":{"array":{ "lt" : 200}}}
> },
> "greater" : {
>"filter":{"range":{"array":{ "gt" : 500}}}
> }
>   }
> }
>  ```
>
> But the 1st filter count the number of documents which have an array 
> containing a value <200 and the 2nd how many have a value >500.
> What I'd like is to count how many values are <200 and how many are >500 
> (not how many document).
>
> If I make a sum / min / max aggregation, it will be on each value in 
> arrays but not with a filter.
> Do you have an idea how to do that thing?
>
>
> I did it with 2 script filters, it works, but the computing time is too 
> bad :
>
> ```json
>  { 
>   "aggs" : {
> "less" : {
>   "sum":{
> "script":" def sum = 0; doc['array'].values.each(){if(it < 200) 
> sum++}; return sum;"}
> },
> "greater" : {
>"sum":{
>  "script":"def sum = 0; doc['array'].values.each(){if(it > 500) 
> sum++}; return sum;"}
> }
>  }
> ```
>
> Any Idea?
> Thanks!
>  --
> 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 .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/elasticsearch/d988da81-167f-48d2-b4c8-8e94956bc333%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/ea6b7b2e-2874-4387-b314-86a425e88b77%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Range Filter Aggregation on array

2014-10-07 Thread Rémi Nonnon


Hi all,

I have some troubles when I try to use Range Filter aggregation on an array.

Example of 1 document :

{
   "_index": "test",
   "_type": "values",
   "_id": "1",
   "_version": 1,
   "found": true,
   "_source": {
  "array": [927,425,455,120]
}
}

For all my "values" document, I'd like to count, on "array" field, how many 
numbers are less than 200 and how many are greater than 500.

I tried this aggregation :

GET /test/values/_search

{
  "aggs" : {
"less" : {
  "filter":{"range":{"array":{ "lt" : 200}}}
},
"greater" : {
   "filter":{"range":{"array":{ "gt" : 500}}}
}
  }
}

But the 1st filter count the number of documents which have an array 
containing a value <200 and the 2nd how many have a value >500. What I'd 
like is to count, for all documents, how many values (not how many 
document) are <200 and how many are >500.

If I make a sum / min / max aggregation, it will be on each value in arrays 
but not with a filter. Do you have an idea how to do that thing?

I did it with 2 script filters, it works, but the computing time is too bad 
:

{ 
  "aggs" : {
"less" : {
  "sum":{
"script":" def sum = 0; doc['array'].values.each(){if(it < 200) sum++}; 
return sum;"}
},
"greater" : {
   "sum":{
 "script":"def sum = 0; doc['array'].values.each(){if(it > 500) sum++}; 
return sum;"}
}
}

Any Idea? Thanks!

-- 
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/76084de4-472f-4084-9a27-9f158d018043%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Range Filter Aggregation on array

2014-10-07 Thread David Pilato
One of the solution I can think is by using nested documents for your array.
In that case, each element of the array will be seen as the document.

Hope this helps


-- 
David Pilato | Technical Advocate | elasticsearch.com
david.pil...@elasticsearch.com
@dadoonet | @elasticsearchfr | @scrutmydocs



Le 7 octobre 2014 à 10:36:28, Rémi Nonnon (remi.non...@gmail.com) a écrit:

Hi all,

I have some troubles when I try to use Range Filter aggregation on an array.

Example of 1 document :
```json
{
   "_index": "test",
   "_type": "values",
   "_id": "1",
   "_version": 1,
   "found": true,
   "_source": {
      "array": [927,425,455,120]
    }
}
```

For all my "values" document, I'd like to count for "array" field how many 
numbers are less than 200 and how many are greater than 500.

I tried this aggregation :

GET /test/values/_search
```json
{
  "aggs" : {
    "less" : {
      "filter":{"range":{"array":{ "lt" : 200}}}
    },
    "greater" : {
       "filter":{"range":{"array":{ "gt" : 500}}}
    }
  }
}
```

But the 1st filter count the number of documents which have an array containing 
a value <200 and the 2nd how many have a value >500.
What I'd like is to count how many values are <200 and how many are >500 (not 
how many document).

If I make a sum / min / max aggregation, it will be on each value in arrays but 
not with a filter.
Do you have an idea how to do that thing?


I did it with 2 script filters, it works, but the computing time is too bad :

```json
{ 
  "aggs" : {
    "less" : {
      "sum":{
        "script":" def sum = 0; doc['array'].values.each(){if(it < 200) sum++}; 
return sum;"}
    },
    "greater" : {
       "sum":{
         "script":"def sum = 0; doc['array'].values.each(){if(it > 500) sum++}; 
return sum;"}
    }
}
```

Any Idea?
Thanks!
--
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/d988da81-167f-48d2-b4c8-8e94956bc333%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/etPan.5433a689.836c40e.7bd4%40MacBook-Air-de-David.local.
For more options, visit https://groups.google.com/d/optout.


Range Filter Aggregation on array

2014-10-07 Thread Rémi Nonnon
Hi all,

I have some troubles when I try to use Range Filter aggregation on an array.

Example of 1 document :
```json
{
   "_index": "test",
   "_type": "values",
   "_id": "1",
   "_version": 1,
   "found": true,
   "_source": {
  "array": [927,425,455,120]
}
}
```

For all my "values" document, I'd like to count for "array" field how many 
numbers are less than 200 and how many are greater than 500.

I tried this aggregation :

GET /test/values/_search
```json
{
  "aggs" : {
"less" : {
  "filter":{"range":{"array":{ "lt" : 200}}}
},
"greater" : {
   "filter":{"range":{"array":{ "gt" : 500}}}
}
  }
}
```

But the 1st filter count the number of documents which have an array 
containing a value <200 and the 2nd how many have a value >500.
What I'd like is to count how many values are <200 and how many are >500 
(not how many document).

If I make a sum / min / max aggregation, it will be on each value in arrays 
but not with a filter.
Do you have an idea how to do that thing?


I did it with 2 script filters, it works, but the computing time is too bad 
:

```json
{ 
  "aggs" : {
"less" : {
  "sum":{
"script":" def sum = 0; doc['array'].values.each(){if(it < 200) 
sum++}; return sum;"}
},
"greater" : {
   "sum":{
 "script":"def sum = 0; doc['array'].values.each(){if(it > 500) 
sum++}; return sum;"}
}
}
```

Any Idea?
Thanks!

-- 
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/d988da81-167f-48d2-b4c8-8e94956bc333%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.