Thanks for finding the details of the bug and raising it. I have pushed a fix which should be available in the next release
On Wednesday, 3 September 2014 12:19:54 UTC+1, Owain Braddick wrote: > > I found the bug in array resizing code. Raised issue at > https://github.com/elasticsearch/elasticsearch/issues/7556. > > On Tuesday, September 2, 2014 3:30:54 PM UTC+1, Colin Goodheart-Smithe > wrote: >> >> Ok, yes this does look like a bug so if you could raise an issue on >> github and post the issue link back in this thread, that would be great. >> >> Thanks >> >> Colin >> >> On Tuesday, 2 September 2014 15:23:23 UTC+1, Owain Braddick wrote: >>> >>> Hi, >>> >>> I hit exactly the same issue today. It seems that the problem occurs >>> when the number of buckets in the outer geohash grid aggregation goes above >>> a certain number (around 50 in my tests but that could be system >>> dependent). The stack trace is below but doesn't tell much. If someone can >>> confirm this is a bug I am happy to raise an issue. >>> >>> [2014-09-02 14:46:54,698][DEBUG][action.search.type ] [3-D Man] >>> [typename][0], node[sEDEsE4GQ2yqxVb5njslDQ], [P], s[STARTED]: Failed to >>> execute [org.elasticsearch.action.search.SearchRequest@37a97844] lastShard >>> [true] >>> org.elasticsearch.search.query.QueryPhaseExecutionException: >>> [typename][0]: >>> query[filtered(filtered(fieldname:other)->*:*)->cache(_type:indexname)],from[0],size[10]: >>> >>> Query Failed [Failed to execute main query] >>> at org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:162) >>> at >>> org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:261) >>> at >>> org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:206) >>> at >>> org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:203) >>> at >>> org.elasticsearch.search.action.SearchServiceTransportAction$23.run(SearchServiceTransportAction.java:517) >>> at >>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >>> at java.lang.Thread.run(Thread.java:744) >>> Caused by: java.lang.ArrayIndexOutOfBoundsException >>> [2014-09-02 14:46:54,699][DEBUG][action.search.type ] [3-D Man] >>> [typename][3], node[sEDEsE4GQ2yqxVb5njslDQ], [P], s[STARTED]: Failed to >>> execute [org.elasticsearch.action.search.SearchRequest@37a97844] lastShard >>> [true] >>> org.elasticsearch.search.query.QueryPhaseExecutionException: >>> [typename][3]: >>> query[filtered(filtered(fieldname:other)->*:*)->cache(_type:indexname)],from[0],size[10]: >>> >>> Query Failed [Failed to execute main query] >>> at org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:162) >>> at >>> org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:261) >>> at >>> org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:206) >>> at >>> org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:203) >>> at >>> org.elasticsearch.search.action.SearchServiceTransportAction$23.run(SearchServiceTransportAction.java:517) >>> at >>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >>> at java.lang.Thread.run(Thread.java:744) >>> Caused by: java.lang.ArrayIndexOutOfBoundsException >>> [2014-09-02 14:46:54,707][DEBUG][action.search.type ] [3-D Man] >>> [typename][4], node[sEDEsE4GQ2yqxVb5njslDQ], [P], s[STARTED]: Failed to >>> execute [org.elasticsearch.action.search.SearchRequest@37a97844] lastShard >>> [true] >>> org.elasticsearch.search.query.QueryPhaseExecutionException: >>> [typename][4]: >>> query[filtered(filtered(fieldname:other)->*:*)->cache(_type:indexname)],from[0],size[10]: >>> >>> Query Failed [Failed to execute main query] >>> at org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:162) >>> at >>> org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:261) >>> at >>> org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:206) >>> at >>> org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:203) >>> at >>> org.elasticsearch.search.action.SearchServiceTransportAction$23.run(SearchServiceTransportAction.java:517) >>> at >>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >>> at java.lang.Thread.run(Thread.java:744) >>> Caused by: java.lang.ArrayIndexOutOfBoundsException >>> [2014-09-02 14:46:54,708][DEBUG][action.search.type ] [3-D Man] >>> [typename][1], node[sEDEsE4GQ2yqxVb5njslDQ], [P], s[STARTED]: Failed to >>> execute [org.elasticsearch.action.search.SearchRequest@37a97844] lastShard >>> [true] >>> org.elasticsearch.search.query.QueryPhaseExecutionException: >>> [typename][1]: >>> query[filtered(filtered(fieldname:other)->*:*)->cache(_type:indexname)],from[0],size[10]: >>> >>> Query Failed [Failed to execute main query] >>> at org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:162) >>> at >>> org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:261) >>> at >>> org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:206) >>> at >>> org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:203) >>> at >>> org.elasticsearch.search.action.SearchServiceTransportAction$23.run(SearchServiceTransportAction.java:517) >>> at >>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >>> at java.lang.Thread.run(Thread.java:744) >>> Caused by: java.lang.ArrayIndexOutOfBoundsException >>> [2014-09-02 14:46:54,713][DEBUG][action.search.type ] [3-D Man] >>> [typename][2], node[sEDEsE4GQ2yqxVb5njslDQ], [P], s[STARTED]: Failed to >>> execute [org.elasticsearch.action.search.SearchRequest@37a97844] >>> org.elasticsearch.search.query.QueryPhaseExecutionException: >>> [typename][2]: >>> query[filtered(filtered(fieldname:other)->*:*)->cache(_type:indexname)],from[0],size[10]: >>> >>> Query Failed [Failed to execute main query] >>> at org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:162) >>> at >>> org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:261) >>> at >>> org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:206) >>> at >>> org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:203) >>> at >>> org.elasticsearch.search.action.SearchServiceTransportAction$23.run(SearchServiceTransportAction.java:517) >>> at >>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >>> at java.lang.Thread.run(Thread.java:744) >>> Caused by: java.lang.ArrayIndexOutOfBoundsException >>> [2014-09-02 14:46:54,714][DEBUG][action.search.type ] [3-D Man] >>> All shards failed for phase: [query] >>> >>> >>> On Friday, July 25, 2014 2:47:39 PM UTC+1, Colin Goodheart-Smithe wrote: >>>> >>>> Could you post the full stack trace from the elasticsearch log file? >>>> This will help in working out where the query falls over >>>> >>>> Thanks >>>> >>>> On Friday, 25 July 2014 01:18:49 UTC+1, svartalf wrote: >>>>> >>>>> It is really odd, but it failed for me on the precision levels 6 and 7 >>>>> with a ArrayIndexOutOfBoundsException, and working for 5 and 8 levels. >>>>> >>>>> I had put a big query examples here: >>>>> https://gist.github.com/svartalf/5db600e7ea2907fbda3a >>>>> >>>>> >>>>> четверг, 24 июля 2014 г., 18:05:30 UTC+9 пользователь Colin >>>>> Goodheart-Smithe написал: >>>>>> >>>>>> I think the problem is that you have an extra aggregations object >>>>>> surrounding the geo_bounds aggregation. Try the following: >>>>>> >>>>>> curl -XGET "http://localhost:9200/postings/_search" -d' >>>>>> { >>>>>> "query": { >>>>>> "filtered": { >>>>>> "filter": { >>>>>> "geo_bounding_box": { >>>>>> "point": { >>>>>> "bottom_right": [ >>>>>> 104.45856200712711, >>>>>> 52.208730692828844 >>>>>> ], >>>>>> "top_left": [ >>>>>> 104.19077025908017, >>>>>> 52.34035674074375 >>>>>> ] >>>>>> } >>>>>> } >>>>>> }, >>>>>> "query": { >>>>>> "match_all": {} >>>>>> } >>>>>> } >>>>>> }, >>>>>> "aggregations": { >>>>>> "cells": { >>>>>> "geohash_grid": { >>>>>> "field": "point", >>>>>> "precision": 6 >>>>>> }, >>>>>> "aggregations": { >>>>>> "lat": { >>>>>> "avg": { >>>>>> "script": "doc[\"point\"].lat" >>>>>> } >>>>>> }, >>>>>> "lon": { >>>>>> "avg": { >>>>>> "script": "doc[\"point\"].lon" >>>>>> } >>>>>> }, >>>>>> "hits": { >>>>>> "top_hits": { >>>>>> "_source": { >>>>>> "include": [ >>>>>> "short_description" >>>>>> ] >>>>>> }, >>>>>> "size": 1 >>>>>> } >>>>>> }, >>>>>> "bounds": { >>>>>> "geo_bounds": { >>>>>> "field": "point" >>>>>> } >>>>>> } >>>>>> } >>>>>> } >>>>>> }, >>>>>> "size": 0 >>>>>> }' >>>>>> >>>>>> On Thursday, 24 July 2014 09:32:10 UTC+1, svartalf wrote: >>>>>>> >>>>>>> Here is an example: >>>>>>> https://gist.github.com/svartalf/c3cb76c40dd4fa1374fa >>>>>>> >>>>>>> I'm using two inner aggregation functions, and with "top_hits" >>>>>>> removed, "geo_bounds" works sometimes, and sometimes fails with a >>>>>>> `response_2.json` (in the example) or `response_3.json`. >>>>>>> With an enabled "top_hits" aggregator it is also throwing >>>>>>> `response_1.json` text. >>>>>>> >>>>>>> I'm trying to group points into the buckets and annotate them with a >>>>>>> top_hit item and geo bounds for each bucket, and got stuck a little. >>>>>>> Maybe >>>>>>> I should move one of those two aggregations one level deeper? >>>>>>> >>>>>>> четверг, 24 июля 2014 г., 16:52:01 UTC+9 пользователь Colin >>>>>>> Goodheart-Smithe написал: >>>>>>>> >>>>>>>> You should be able to achieve this with the below query. If you >>>>>>>> still cannot get it working could you provide a cURL example which >>>>>>>> reproduces your issue? >>>>>>>> >>>>>>>> curl -XGET "http://localhost:9200/geo/_search" -d' >>>>>>>> { >>>>>>>> "size": 0, >>>>>>>> "aggs": { >>>>>>>> "geohash" : { >>>>>>>> "geohash_grid": { >>>>>>>> "field": "location", >>>>>>>> "precision": 3 >>>>>>>> }, >>>>>>>> "aggs": { >>>>>>>> "subbounds": { >>>>>>>> "geo_bounds": { >>>>>>>> "field": "location" >>>>>>>> } >>>>>>>> } >>>>>>>> } >>>>>>>> } >>>>>>>> } >>>>>>>> }' >>>>>>>> >>>>>>>> On Thursday, 24 July 2014 07:46:31 UTC+1, svartalf wrote: >>>>>>>>> >>>>>>>>> Is there any way to use geo_bounds as a sub aggregator? >>>>>>>>> >>>>>>>>> I have a geohash_grid aggregation, and it will be very useful to >>>>>>>>> get bounds for each bucket of the data. >>>>>>>>> Right now my ES 1.3.0 says that he "Could not find aggregator type >>>>>>>>> [bounds] in [aggregations]]". >>>>>>>>> >>>>>>>> -- 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/081244d9-febc-4b33-a66b-8e01044b5c0d%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
