# Nested query can't work using java API

**URL:** <https://discuss.elastic.co/t/nested-query-cant-work-using-java-api/10310>\
**Category:** Elasticsearch\
**Created:** [January 11, 2013, 7:12am UTC](https://discuss.elastic.co/t/nested-query-cant-work-using-java-api/10310 "2013-01-11T07:12:35Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Margaret\_2](https://avatars.discourse-cdn.com/v4/letter/m/3da27b/32.png) [@Margaret\_2](https://discuss.elastic.co/u/Margaret_2)\
**Post date:** [January 11, 2013, 7:12am UTC](https://discuss.elastic.co/t/nested-query-cant-work-using-java-api/10310/1 "2013-01-11T07:12:35Z")

</div>

I created an index "blog" and a type "post". Docs in "post" are like this:  
{  
"user":"Dilbert Brown",  
"posts":[  
{  
"body":"Distribution search is hard.",  
"postDate":"2011-12-15"  
},  
{  
"body":"Elasticsearch is useful",  
"postDate":"2011-12-18"  
}  
]  
}

The mapping for "post" is:  
curl -XPOST '[http://localhost:9200/blog/post/\_mapping](http://localhost:9200/blog/post/_mapping)' -d '  
{  
"post":{  
"properties":{  
"posts":{  
"type":"nested",  
"properties":{  
"body":{  
"type":"string"  
},  
"postDate":{  
"type":"date",  
"format":"dateOptionalTime"  
}  
}  
},  
"user":{  
"type":"string"  
}  
}  
}  
}'

In shell, a nested query as follow works:  
curl -XGET '[http://localhost:9200/blog/post/\_search?pretty=true](http://localhost:9200/blog/post/_search?pretty=true)' -d '  
{  
"query":{  
"nested":{  
"path":"posts",  
"query":{  
"query\_string":{  
"query":"posts.body:hard"  
}  
}  
}  
}  
}'

In java project, I save the above query(only nested part) in a parameter  
"queryStr" and then pass it to SearchRequestBuilder:  
String queryStr = "{"  
+" "nested":{"  
......  
+" }"  
+"}"  
SearchResponse resp = client.prepareSearch("blog")  
.setTypes("post")  
.setQuery(queryStr )  
.setFrom(0).setSize(50).setExplain(true)  
.execute()  
.actionGet();

But "resp" returns nothing.

How can nested query work using java API? Besides, using "query\_string" in  
"nested" query is required.

--  
Thanks,  
\*  
\*  
_Xiaowen Huang_  
Student of School of Software Engineering  
Beijing Jiaotong University  
Add.:No.3 Shangyuancun, Haidian District, Beijing, P.R.China  
Tel.: +86-152-1058-2730  
Email: [Xiaowen.Huang.bjtu@gmail.com](mailto:Xiaowen.Huang.bjtu@gmail.com)

--

---

<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:** [July 6, 2017, 2:56am UTC](https://discuss.elastic.co/t/nested-query-cant-work-using-java-api/10310/2 "2017-07-06T02:56:56Z")

</div>


