下面例子查询返回 "id", "title", "description", "image", "ctime"
/* * 范例:/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); searchRequestBuilder.setFetchSource(new String[] { "id", "title", "description", "image", "ctime" }, null); 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 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。