package org.weiboad.ragnar.server.controller.web;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.Sort;
import org.apache.lucene.search.SortField;
import org.apache.lucene.search.TermQuery;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.weiboad.ragnar.server.config.FieryConfig;
import org.weiboad.ragnar.server.controller.ragnarlog.PutMetalog;
import org.weiboad.ragnar.server.data.ResponseJson;
import org.weiboad.ragnar.server.data.statics.APITopURLStaticShardCollect;
import org.weiboad.ragnar.server.search.IndexService;
import org.weiboad.ragnar.server.util.DateTimeHelper;
@Controller
public class APITopDetailPage {
@Autowired
IndexService indexHelper;
@Autowired
FieryConfig fieryConfig;
@Autowired
APITopURLStaticShardCollect apiTopURLStaticShardCollect;
Logger log = LoggerFactory.getLogger(PutMetalog.class);
@RequestMapping(value = "/apitopdetail", method = RequestMethod.GET)
public String currentlog(Model model, @RequestParam(value = "url", required = false, defaultValue = "") String keyword) {
Query query;
try {
Term term = new Term("url", keyword.trim());
query = new TermQuery(term);
} catch (Exception e) {
model.addAttribute("msg", "query parser error");
return "search";
}
Sort sort = new Sort(new SortField("elapsed_ms", SortField.Type.DOUBLE, true));
ResponseJson result = indexHelper.searchByQuery(DateTimeHelper.getCurrentTime(), query, 0, 1000, sort);
model.addAttribute("resultlist", result.getResult());
model.addAttribute("url", keyword);
return "apitopdetail";
}
}