/*
* 范例:/restful/search/article/list/23/0/20.json?tags=美国
*/
@RequestMapping(value = "/article/list/{siteId}/{from}/{size}")
public List<Map<String, Object>> listBySiteIdAndTags(@PathVariable String siteId, @PathVariable int from, @PathVariable int size, @RequestParam(value = "tags", required = false) String tags) {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
SearchRequestBuilder searchRequestBuilder = client.prepareSearch("information").setTypes("article").setSearchType(SearchType.DFS_QUERY_THEN_FETCH).addSort("ctime", SortOrder.DESC)
// .addFields("_source","title", "description", "ctime")
;
if (tags != null && !tags.equals("")) {
// logger.info(tags);
searchRequestBuilder.setQuery(QueryBuilders.matchQuery("tags", tags));
}
searchRequestBuilder.setPostFilter(QueryBuilders.termQuery("site_id", siteId)).setFrom(from).setSize(size).setExplain(true);
// logger.info(searchRequestBuilder.toString());
SearchResponse response = searchRequestBuilder.get();
for (final SearchHit hit : response.getHits().getHits()) {
// logger.info(hit.getSourceAsString());
hit.getSourceAsMap().remove("content");
list.add(hit.getSourceAsMap());
}
logger.info(tags);
return list;
}
}
原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。