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 elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/6d1dab85-c04d-4896-a792-cdec654d62b4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to