Would you be able to re-run your query and post the stack trace from the 
Elasticsearch server logs.  This might help to work out whats going on.

Thanks

Colin

On Tuesday, 29 July 2014 12:29:00 UTC+1, Valentin wrote:
>
> Ok. I think I found the problem. As soon as I try to sort on the script 
> value it ceases to work
>
> works, but unsorted
> {
>   "size": 0,
>   "aggs": {
>     "winners": {
>       "terms": {
>         "field": "tit",
>         "size": 10,
>         "shard_size": 4
>       },
>       "aggs": {
>         "articles_over_time": {
>           "date_histogram": {
>             "field": "datetime",
>             "interval": "1d"
>           }
>         },
>         "diff": {
>           "sum": {
>             "script": "(doc['datetime'].value < 1406412000000) ? -1 : 1",
>             "lang": "groovy"
>           }
>         }
>       }
>     }
>   }
> }
>
> does not work:
> {
>   "size": 0,
>   "aggs": {
>     "winners": {
>       "terms": {
>         "field": "tit",
>         "size": 10,
>         "order": {
>           "diff": "desc"
>         },
>         "shard_size": 4
>       },
>       "aggs": {
>         "articles_over_time": {
>           "date_histogram": {
>             "field": "datetime",
>             "interval": "1d"
>           }
>         },
>         "diff": {
>           "sum": {
>             "script": "(doc['datetime'].value < 1406412000000) ? -1 : 1",
>             "lang": "groovy"
>           }
>         }
>       }
>     }
>   }
> }
>
>
>
>
> On Tuesday, July 29, 2014 12:40:15 PM UTC+2, Valentin wrote:
>>
>> Hi Colin,
>>
>> I could figure out the shard_size problem thanks to your help.
>>
>> For the 'datetime' error: I checked and it exists in all the indices. It 
>> has the correct mappings and the therefor probably could not have wrong 
>> values I guess. And using the elasticsearch-head plugin I dont get the 
>> error but a wrong result which really seems strange.
>>
>> Thanks
>> Valentin
>>
>> On Tuesday, July 29, 2014 11:54:08 AM UTC+2, Colin Goodheart-Smithe wrote:
>>>
>>> Firstly, I think the reason you are only getting results from one index 
>>> when you are asking for a size of 1 in your terms aggregation is because 
>>> you are asking for the top 1 bucket from each shard on each index.  This 
>>> will then be merged together and only the top bucket will be kept.  If the 
>>> top bucket is not the same on all indexes then you will not get results 
>>> from all indices.  Setting the shard_size parameter to something like 10 
>>> can help with this (see 
>>> http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html#_document_counts_are_approximate
>>>  
>>> for more information on this)
>>>
>>> Second, I wonder if the reason you are getting the error from your 
>>> script is that you don't have a 'datetime' value for all of your documents 
>>> in some of your indices?
>>>
>>> Regards,
>>>
>>> Colin
>>>
>>> On Monday, 28 July 2014 16:04:55 UTC+1, Valentin wrote:
>>>>
>>>> Hi Colin,
>>>>
>>>> now it gets really strange. First my alias
>>>> curl 'http://localhost:9200/_alias?pretty'
>>>> { 
>>>>   "live-2014-07-27" : { 
>>>>
>>>>     "aliases" : { 
>>>>
>>>>       "aggtest" : { } 
>>>>
>>>>     } 
>>>>
>>>>   }, 
>>>>
>>>>   "live-2014-07-26" : { 
>>>>
>>>>     "aliases" : { 
>>>>
>>>>       "aggtest" : { } 
>>>>
>>>>     } 
>>>>
>>>>   } 
>>>>
>>>> }
>>>>
>>>>
>>>> I tried two different queries:
>>>> curl -XPOST 'http://localhost:9200/aggtest/video/_search?pretty=true' 
>>>> -d '{
>>>>   "size": 0,
>>>>   "aggs": {
>>>>     "winners": {
>>>>       "terms": {
>>>>         "field": "tit",
>>>>         "order": {
>>>>           "diff": "desc"
>>>>         },
>>>>         "size": 1
>>>>       },
>>>>       "aggs": {
>>>>         "articles_over_time": {
>>>>           "date_histogram": {
>>>>             "field": "datetime",
>>>>             "interval": "1d"
>>>>           }
>>>>         },
>>>>         "diff": {
>>>>           "sum": {
>>>>             "script": "(doc['datetime'].value < 1406412000000) ? -1 : 
>>>> 1",
>>>>             "lang": "groovy"
>>>>           }
>>>>         }
>>>>       }
>>>>     }
>>>>   }
>>>> }'
>>>>
>>>> and
>>>>
>>>> curl -XPOST '
>>>> http://localhost:9200/live-2014-07-26,live-2014-07-27/video/_search?pretty=true'
>>>>  
>>>> .....
>>>>
>>>> both do give me a result (but a wrong one) when I do query using 
>>>> elasticsearch-head but result in an error if I use the commandline
>>>>
>>>> {
>>>>
>>>>   "error" : "SearchPhaseExecutionException[Failed to execute phase 
>>>> [query], all shards failed; shardFailures 
>>>> {[_MxuihP3TfmZV4FYUQaRQQ][live-2014-07-26][1]: 
>>>> QueryPhaseExecutionException[[live-2014-07-26][1]: 
>>>> query[ConstantScore(cache(_type:video))],from[0],size[0]: Query Failed 
>>>> [Failed to execute main query]]; nested: 
>>>> GroovyScriptExecutionException[MissingPropertyException[No such property: 
>>>> datetime for class: Script126]]; 
>>>> }{[FYhB58m7T1W3HjhzUmtzww][live-2014-07-27][0]: 
>>>> RemoteTransportException[[live02][inet[/10.XXX.XX.XX:9300]][search/phase/query]];
>>>>  
>>>> nested: QueryPhaseExecutionException[[live-2014-07-27][0]: 
>>>> query[ConstantScore(cache(_type:video))],from[0],size[0]: Query Failed 
>>>> [Failed to execute main query]]; nested: 
>>>> GroovyScriptExecutionException[MissingPropertyException[No such property: 
>>>> datetime for class: Script119]]; 
>>>> }{[_MxuihP3TfmZV4FYUQaRQQ][live-2014-07-27][1]: 
>>>> QueryPhaseExecutionException[[live-2014-07-27][1]: 
>>>> query[ConstantScore(cache(_type:video))],from[0],size[0]: Query Failed 
>>>> [Failed to execute main query]]; nested: 
>>>> GroovyScriptExecutionException[MissingPropertyException[No such property: 
>>>> datetime for class: Script126]]; 
>>>> }{[FYhB58m7T1W3HjhzUmtzww][live-2014-07-26][0]: 
>>>> RemoteTransportException[[live02][inet[/10.XXX.XX.XX:9300]][search/phase/query]];
>>>>  
>>>> nested: QueryPhaseExecutionException[[live-2014-07-26][0]: 
>>>> query[ConstantScore(cache(_type:video))],from[0],size[0]: Query Failed 
>>>> [Failed to execute main query]]; nested: 
>>>> GroovyScriptExecutionException[MissingPropertyException[No such property: 
>>>> datetime for class: Script119]]; }]",
>>>>
>>>>   "status" : 500
>>>>
>>>> }
>>>>
>>>>
>>>> But I noticed something strange. This works:
>>>> curl -XPOST 'http://localhost:9200/aggtest/video/_search?pretty=true' 
>>>> -d '{
>>>>   "size": 0,
>>>>   "aggs": {
>>>>     "winners": {
>>>>       "terms": {
>>>>         "field": "tit"
>>>>       },
>>>>       "aggs": {
>>>>         "articles_over_time": {
>>>>           "date_histogram": {
>>>>             "field": "datetime",
>>>>             "interval": "1d"
>>>>           }
>>>>         }
>>>>       }
>>>>     }
>>>>   }
>>>> }'
>>>> result:
>>>>
>>>> {
>>>>
>>>>   "took" : 26,
>>>>
>>>>   "timed_out" : false,
>>>>
>>>>   "_shards" : {
>>>>
>>>>     "total" : 4,
>>>>
>>>>     "successful" : 4,
>>>>
>>>>     "failed" : 0
>>>>
>>>>   },
>>>>
>>>>   "hits" : {
>>>>
>>>>     "total" : 89419,
>>>>
>>>>     "max_score" : 0.0,
>>>>
>>>>     "hits" : [ ]
>>>>
>>>>   },
>>>>
>>>>   "aggregations" : {
>>>>
>>>>     "winners" : {
>>>>
>>>>       "buckets" : [ {
>>>>
>>>>         "key" : "videotitle",
>>>>
>>>>         "doc_count" : 3539,
>>>>
>>>>         "articles_over_time" : {
>>>>
>>>>           "buckets" : [ {
>>>>
>>>>             "key_as_string" : "2014-07-26T00:00:00.000Z",
>>>>
>>>>             "key" : 1406332800000,
>>>>
>>>>             "doc_count" : 2820
>>>>
>>>>           }, {
>>>>
>>>>             "key_as_string" : "2014-07-27T00:00:00.000Z",
>>>>
>>>>             "key" : 1406419200000,
>>>>
>>>>             "doc_count" : 719
>>>>
>>>>           } ]
>>>>
>>>>         }
>>>>
>>>>       }, {
>>>>
>>>> But this does not: (notice the size-limit to 1)
>>>> curl -XPOST 'http://localhost:9200/aggtest/video/_search?pretty=true' 
>>>> -d '{
>>>>   "size": 0,
>>>>   "aggs": {
>>>>     "winners": {
>>>>       "terms": {
>>>>         "field": "tit",
>>>>         "size": 1
>>>>       },
>>>>       "aggs": {
>>>>         "articles_over_time": {
>>>>           "date_histogram": {
>>>>             "field": "datetime",
>>>>             "interval": "1d"
>>>>           }
>>>>         }
>>>>       }
>>>>     }
>>>>   }
>>>> }'
>>>> result:
>>>>
>>>> {
>>>>
>>>>   "took" : 17,
>>>>
>>>>   "timed_out" : false,
>>>>
>>>>   "_shards" : {
>>>>
>>>>     "total" : 4,
>>>>
>>>>     "successful" : 4,
>>>>
>>>>     "failed" : 0
>>>>
>>>>   },
>>>>
>>>>   "hits" : {
>>>>
>>>>     "total" : 89419,
>>>>
>>>>     "max_score" : 0.0,
>>>>
>>>>     "hits" : [ ]
>>>>
>>>>   },
>>>>
>>>>   "aggregations" : {
>>>>
>>>>     "winners" : {
>>>>
>>>>       "buckets" : [ {
>>>>
>>>>         "key" : "videotitle",
>>>>
>>>>         "doc_count" : 2820,
>>>>
>>>>         "articles_over_time" : {
>>>>
>>>>           "buckets" : [ {
>>>>
>>>>             "key_as_string" : "2014-07-26T00:00:00.000Z",
>>>>
>>>>             "key" : 1406332800000,
>>>>
>>>>             "doc_count" : 2820
>>>>
>>>>           } ]
>>>>
>>>>         }
>>>>
>>>>       } ]
>>>>
>>>>     }
>>>>
>>>>   }
>>>>
>>>> }
>>>>
>>>> Which seems to be a related problem to my original query, because it 
>>>> always seem to query one index but not the other 
>>>>
>>>> my original query I used in elasticsearch-head:
>>>> /aggtest/video/
>>>>
>>>> {
>>>>   "size": 0,
>>>>   "aggs": {
>>>>     "winners": {
>>>>       "terms": {
>>>>         "field": "tit",
>>>>         "order": {
>>>>           "diff": "desc"
>>>>         }
>>>>       },
>>>>       "aggs": {
>>>>         "articles_over_time": {
>>>>           "date_histogram": {
>>>>             "field": "datetime",
>>>>             "interval": "1d"
>>>>           }
>>>>         },
>>>>         "diff": {
>>>>           "sum": {
>>>>             "script": "(doc['datetime'].value < 1406412000000) ? -1 : 
>>>> 1",
>>>>             "lang": "groovy"
>>>>           }
>>>>         }
>>>>       }
>>>>     }
>>>>   }
>>>> }
>>>> and the result:
>>>>
>>>>    - {
>>>>       - key: videotitle 
>>>>       - doc_count: 719
>>>>       - articles_over_time: {
>>>>          - buckets: [
>>>>             - {
>>>>                - key_as_string: 2014-07-27T00:00:00.000Z
>>>>                - key: 1406419200000
>>>>                - doc_count: 719
>>>>             }
>>>>          ]
>>>>       }
>>>>       - diff: {
>>>>          - value: 719
>>>>       }
>>>>    }
>>>>
>>>>
>>>>
>>>> Thanks,
>>>> Valentin
>>>>
>>>>
>>>>
>>>>
>>>> On Monday, July 28, 2014 3:42:46 PM UTC+2, Colin Goodheart-Smithe wrote:
>>>>>
>>>>> How are you searching over the multiple indexes? are you using 
>>>>> aliases? It would be helpful if you could post your alias configuration 
>>>>> (see [1]) and an cURL example of a search request that fails
>>>>>
>>>>> [1] 
>>>>> http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-aliases.html#alias-retrieving
>>>>>
>>>>> Thanks
>>>>>
>>>>> Colin
>>>>>
>>>>> On Monday, 28 July 2014 14:00:55 UTC+1, Valentin wrote:
>>>>>>
>>>>>> Hi Colin,
>>>>>>
>>>>>> thanks for checking. I could successfully reproduce your example and 
>>>>>> I even splitted it into 2 indeces and it worked (Elasticsearch 1.3.0). 
>>>>>> But 
>>>>>> as soon as I try it with my data it doesnt work. I ran some additional 
>>>>>> tests and it works if I only use the current index (day) and split it in 
>>>>>> half. But as soon as I try to compare yesterday and the day before it 
>>>>>> only 
>>>>>> seems to get the data from one day but not the other.
>>>>>>
>>>>>> Cheers,
>>>>>> Valentin
>>>>>>
>>>>>> On Monday, July 28, 2014 10:07:43 AM UTC+2, Colin Goodheart-Smithe 
>>>>>> wrote:
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> I ran the commands in the following gist, on master, without error. 
>>>>>>>  Would you be able to post the error you get and a similar reproducible 
>>>>>>> example to help diagnose the issue you are running into? Also, which 
>>>>>>> version of Elasticsearch are you running?
>>>>>>>
>>>>>>> https://gist.github.com/colings86/46fbb0b22c2f3c4348ae
>>>>>>>
>>>>>>> Thanks
>>>>>>>
>>>>>>> Colin
>>>>>>>
>>>>>>> On Sunday, 27 July 2014 17:53:29 UTC+1, Valentin wrote:
>>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I am trying to use this aggregation which does not work:
>>>>>>>> "aggs": {
>>>>>>>>     "winners": {
>>>>>>>>       "terms": {
>>>>>>>>         "field": "urls",
>>>>>>>>         "order": {
>>>>>>>>           "diff": "desc"
>>>>>>>>         }
>>>>>>>>       },
>>>>>>>>       "aggs": {
>>>>>>>>         "diff": {
>>>>>>>>           "sum": {
>>>>>>>>             "script": "(doc['datetime'].date.getMillis() < 
>>>>>>>> 1406332800000) ? -1 : 1",
>>>>>>>>             "lang": "groovy"
>>>>>>>>           }
>>>>>>>>         }
>>>>>>>>       }
>>>>>>>>     }
>>>>>>>>   }
>>>>>>>>
>>>>>>>> Can anyone help?
>>>>>>>>
>>>>>>>> Cheers,
>>>>>>>> Valentin
>>>>>>>>
>>>>>>>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/95def0cd-952b-46ed-89c1-33c4cc4254a0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to