# Elasticsearch DSL multi level nesting query not working

**URL:** <https://discuss.elastic.co/t/elasticsearch-dsl-multi-level-nesting-query-not-working/193595>\
**Category:** Elasticsearch\
**Created:** [August 2, 2019, 4:21pm UTC](https://discuss.elastic.co/t/elasticsearch-dsl-multi-level-nesting-query-not-working/193595 "2019-08-02T16:21:47Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![prashant\_madaan](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/prashant_madaan/32/51549_2.png) [@prashant\_madaan](https://discuss.elastic.co/u/prashant_madaan)\
**Post date:** [August 2, 2019, 4:21pm UTC](https://discuss.elastic.co/t/elasticsearch-dsl-multi-level-nesting-query-not-working/193595/1 "2019-08-02T16:21:47Z")

</div>

Hi ,

I am trying to write a multi level nested query in Elastic Search DSL. I am running into an issue where it says cannot create query.

This is a sample record:

{  
"memory":123.989807,  
"disks":[  
{  
"total":5033,  
"name":"/",  
"available":3437,  
"used":1544,  
"makers":[  
{  
"vendor":"a",  
"place":"b"  
},  
{  
"vendor":"c",  
"place":"d"  
}  
]  
},  
{  
"total":4057,  
"name":"/dev",  
"available":4057,  
"used":0,  
"makers":[  
{  
"vendor":"e",  
"place":"f"  
},  
{  
"vendor":"g",  
"place":"h"  
}  
]  
},  
{  
"total":4074,  
"name":"/dev/shm",  
"available":4074,  
"used":0,  
"makers":[  
{  
"vendor":"i",  
"place":"j"  
},  
{  
"vendor":"k",  
"place":"l"  
}  
]  
}  
]  
}

The query that i am trying to write in elasticsearch dsl:

es=Elasticsearch([{'host':'localhost','port':9200}])

request = elasticsearch\_dsl.Search(using=es, index="multinested",doc\_type='summary')  
request = request.query('nested', path='disks', query=Q('nested', path='disks\_\_makers', query=Q('match', disks\_\_makers\_\_vendor='a'), inner\_hits={}), inner\_hits={})

response=request.execute()

I was able to make it work in queries like this :

curl -X POST "localhost:9200/multinested/\_search" -H 'Content-Type: application/json' -d'  
{ "\_source":false,  
"query":{  
"bool":{  
"must":[  
{  
"nested":{  
"path":"disks",  
"query":{  
"nested":{  
"path":"disks.makers",  
"query":{  
"match":{  
"disks.makers.vendor":"a"  
}  
},  
"inner\_hits":{}  
}  
},  
"inner\_hits":{}  
}  
}  
]  
}  
}  
}'

Any leads would be helpful

---

<div class="post-metadata">

**Author:** ![prashant\_madaan](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/prashant_madaan/32/51549_2.png) [@prashant\_madaan](https://discuss.elastic.co/u/prashant_madaan)\
**Post date:** [August 7, 2019, 7:31pm UTC](https://discuss.elastic.co/t/elasticsearch-dsl-multi-level-nesting-query-not-working/193595/2 "2019-08-07T19:31:44Z")

</div>

Resolved  
Instead of underscore use period in the path.  
request = request.query('nested', path='disks', query=Q('nested', path='disks\_.makers',

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [September 4, 2019, 7:31pm UTC](https://discuss.elastic.co/t/elasticsearch-dsl-multi-level-nesting-query-not-working/193595/3 "2019-09-04T19:31:49Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
