主要是因为建立父子文档关系时,mapping设置了
"_routing" : {
"required" : true
}
这时,单独根据id查询子文档就会报错,加上routing就可以了,例:
/**
* select高管。
*/
@RequestMapping("/seepeople")
public Result seepeople(@RequestParam(defaultValue = "index") String index,
@RequestParam(defaultValue = "") String type,
@RequestParam(defaultValue = "") String id,
@RequestParam(defaultValue = "") String routing,
@RequestParam(defaultValue = "") String viewfield ) {
SearchResponse searchResponse = null;
ArrayList alt = new ArrayList();
SearchRequestBuilder builder = ESTools.client.prepareSearch(index).setTypes(type);
builder.setFetchSource(viewfield,"");
QueryBuilder qb = QueryBuilders.matchQuery("_id",id);
builder.setQuery(qb);
builder.setRouting(routing);
searchResponse = builder.get();
for(SearchHit hit: searchResponse.getHits().getHits()) {
alt.add(hit.getSource());
}
return ResultGenerator.genSuccessResult(alt);
}
未经允许不得转载:高腾蛟 » ElasticSearch父子文档关系,根据id查询子文档报错,org.elasticsearch.action.RoutingMissingException
评论前必须登录!
登陆 注册