package org.weiboad.ragnar.server.controller.search; import org.apache.lucene.search.MatchAllDocsQuery; import org.apache.lucene.search.Query; import org.apache.lucene.search.Sort; import org.apache.lucene.search.SortField; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.weiboad.ragnar.server.controller.ragnarlog.PutMetalog; import org.weiboad.ragnar.server.data.ResponseJson; import org.weiboad.ragnar.server.search.IndexService; @RestController public class Recent { @Autowired IndexService indexHelper; Logger log = LoggerFactory.getLogger(PutMetalog.class); @RequestMapping(value = "/recent", method = RequestMethod.POST) @ResponseBody public ResponseJson RecentRequest(@RequestParam(value = "timestamp", required = false) String timetamp, @RequestParam(value = "startpos", required = false) String startpos, @RequestParam(value = "limit", required = false) String limit) { if (timetamp == null || timetamp.length() == 0) { ResponseJson result = new ResponseJson(); result.setCode(400); result.setMsg("Plasee set the timestamp paramter!"); return result; } long timestamplong; try { timestamplong = Integer.parseInt(timetamp); } catch (Exception e) { ResponseJson result = new ResponseJson(); result.setCode(400); result.setMsg("Plasee set the timestamp paramter for the long"); return result; } int start; int datasize; try { start = Integer.parseInt(startpos); } catch (Exception e) { start = 0; } try { datasize = Integer.parseInt(limit); } catch (Exception e) { datasize = 20; } Sort sort = new Sort(new SortField("time", SortField.Type.DOUBLE, true)); //QueryParser parser = new QueryParser("*", new StandardAnalyzer()); Query query; query = new MatchAllDocsQuery(); ResponseJson result = indexHelper.searchByQuery(timestamplong, query, start, datasize, sort); return result; } }