[英]In Java, how do you query the nested field in elasticsearch according to ID?
ScoreMode mode=ScoreMode.Total;
SearchRequestBuilder searchRequestBuilder =
client.prepareSearch()
.setIndices("commons")
.setTypes("webpage")
//.fields("id")
.setSize(10000)
.setQuery(QueryBuilders
.nestedQuery("imgSource",
QueryBuilders.boolQuery()
.must(
QueryBuilders.matchQuery(
"id","48ca52e0d733c5093c08aa4df0b073f7")
),mode));
this is my code,but result is null,So I don't know if I made a mistake... 这是我的代码,但结果为null,所以我不知道自己是否犯了错误...
As per java api for nested queries , Your code snippet should look something like below: 根据用于嵌套查询的Java api ,您的代码段应如下所示:
Suppose I want to query name field inside nested document child , then code snippet will be: 假设我要查询嵌套文档child内的name字段,那么代码片段将为:
ScoreMode mode=ScoreMode.Total;
SearchRequestBuilder searchRequestBuilder =
client.prepareSearch()
.setIndices(INDEX_NAME)
.setTypes(TYPE_NAME)
.setQuery(QueryBuilders
.nestedQuery("child",
QueryBuilders.boolQuery()
.must(
QueryBuilders.matchQuery(
"child.name","CHILD_NAME")
),mode));
So, your match query is incorrect, it should be imgSource.id 因此,您的匹配查询不正确,应为imgSource.id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.