I've posted the issue here: https://github.com/elastic/elasticsearch/issues/10158
On Wednesday, March 11, 2015 at 4:42:27 PM UTC-4, Paolo Ciccarese wrote: > > I am using Elasticsearch 1.4.4. > > I am defining a parent-child index with three levels (grandparents) > following the instructions in the document: > > https://www.elastic.co/guide/en/elasticsearch/guide/current/grandparents.html > > My structure is > Continent -> Country -> Region > > MAPPING > -------------- > I create an index with the following mapping: > > curl -XPOST 'localhost:9200/geo' -d' > { > "mappings": { > "continent": {}, > "country": { > "_parent": { > "type": "continent" > } > }, > "region": { > "_parent": { > "type": "country" > } > } > } > }' > > INDEXING > -------------- > I index three entities: > > curl -XPOST 'localhost:9200/geo/continent/europe' -d' > { > "name":"Europe" > }' > > curl -XPOST 'localhost:9200/geo/country/italy?parent=europe' -d' > { > "name":"Italy" > }' > > curl -XPOST > 'localhost:9200/geo/region/lombardy?parent=italy&routing=europe' -d' > { > "name":"Lombardia" > }' > > QUERY THAT WORKS > -------------------------------- > If I query and aggregate according to the document everything works fine: > > curl -XGET 'localhost:9200/geo/continent/_search?pretty=true' -d ' > { > "query": { > "has_child": { > "type": "country", > "query": { > "has_child": { > "type": "region", > "query": { > "match": { > "name": "Lombardia" > } > } > } > } > } > }, > "aggs": { > "country": { > "terms": { > "field": "name" > }, > "aggs": { > "countries": { > "children": { > "type": "country" > }, > "aggs": { > "country_names" : { > "terms" : { > "field" : "country.name" > } > } > } > } > } > } > } > }' > > QUERY THAT DOES NOT WORK > ----------------------------------------------- > However, if I try with multi-level aggregations like in: > > curl -XGET 'localhost:9200/geo/continent/_search?pretty=true' -d ' > { > "query": { > "has_child": { > "type": "country", > "query": { > "has_child": { > "type": "region", > "query": { > "match": { > "name": "Lombardia" > } > } > } > } > } > }, > "aggs": { > "continent_names": { > "terms": { > "field": "name" > }, > "aggs": { > "countries": { > "children": { > "type": "country" > }, > "aggs": { > "regions": { > "children": { > "type": "region" > }, > "aggs": { > "region_names" : { > "terms" : { > "field" : "region.name" > } > } > } > } > } > } > } > } > } > }' > > I get back the following > > { > > "error" : "SearchPhaseExecutionException[Failed to execute phase > [query], all shards failed; shardFailures > {[b5CbW5byQdSSW-rIwta0rA][geo][0]: QueryPhaseExecutionException[[geo][0]: > query[filtered(child_filter[country/continent](filtered(child_filter[region/country](filtered(name:lombardia)->cache(_type:region)))->cache(_type:country)))->cache(_type:continent)],from[0],size[10]: > > Query Failed [Failed to execute main query]]; nested: NullPointerException; > }{[b5CbW5byQdSSW-rIwta0rA][geo][1]: QueryPhaseExecutionException[[geo][1]: > query[filtered(child_filter[country/continent](filtered(child_filter[region/country](filtered(name:lombardia)->cache(_type:region)))->cache(_type:country)))->cache(_type:continent)],from[0],size[10]: > > Query Failed [Failed to execute main query]]; nested: NullPointerException; > }{[b5CbW5byQdSSW-rIwta0rA][geo][2]: QueryPhaseExecutionException[[geo][2]: > query[filtered(child_filter[country/continent](filtered(child_filter[region/country](filtered(name:lombardia)->cache(_type:region)))->cache(_type:country)))->cache(_type:continent)],from[0],size[10]: > > Query Failed [Failed to execute main query]]; nested: NullPointerException; > }{[b5CbW5byQdSSW-rIwta0rA][geo][3]: QueryPhaseExecutionException[[geo][3]: > query[filtered(child_filter[country/continent](filtered(child_filter[region/country](filtered(name:lombardia)->cache(_type:region)))->cache(_type:country)))->cache(_type:continent)],from[0],size[10]: > > Query Failed [Failed to execute main query]]; nested: NullPointerException; > }{[b5CbW5byQdSSW-rIwta0rA][geo][4]: QueryPhaseExecutionException[[geo][4]: > query[filtered(child_filter[country/continent](filtered(child_filter[region/country](filtered(name:lombardia)->cache(_type:region)))->cache(_type:country)))->cache(_type:continent)],from[0],size[10]: > > Query Failed [Failed to execute main query]]; nested: NullPointerException; > }]", > > "status" : 500 > > } > > The 'grandparents' document says: "Querying and aggregating across > generations works, as long as you step through each generation." > > How do I get the last query and aggregation to work across all three > levels of the index? > > What am I missing? > > Thank you, > Paolo > > -- 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/0cbdfb5e-ad20-4820-aac9-48c837976fd0%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
