Hi Colin,

I now could solve the problem thanks to your advice. I set the "shard_size" 
to 0 (max) and then it works. I still don't understand it a 100%.

Thanks for your patience.
Valentin

On Thursday, July 31, 2014 9:21:12 AM UTC+2, Colin Goodheart-Smithe wrote:
>
> The Elasticsearch log files can be found in the logs directory of your 
> node's Elasticsearch directory.  If you re-create the error and have a look 
> at the end of the log file you should see the stacktrace
>
> Colin
>
> On Wednesday, 30 July 2014 10:53:05 UTC+1, Valentin wrote:
>>
>> Hi Colin,
>>
>> I try increasing it up to 40 but nothing changes. I would post the stack 
>> trace but I don't know how to find them.
>>
>> Thanks
>> Valentin
>>
>> On Wednesday, July 30, 2014 10:24:09 AM UTC+2, Colin Goodheart-Smithe 
>> wrote:
>>>
>>> Also, your shard_size parameter should always be greater than the size 
>>> parameter.  So if you are asking for size of 10 then I would try setting 
>>> shard_size to 20 or 30.
>>>
>>> On Wednesday, 30 July 2014 09:22:16 UTC+1, Colin Goodheart-Smithe wrote:
>>>>
>>>> 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/0a9f861d-4321-4230-9827-59706b51b331%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to