SolrController.java 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. package com.lightinit.hsdatashow.controller;
  2. import com.lightinit.hsdatashow.common.CharEncoding;
  3. import com.lightinit.hsdatashow.common.HttpTookitUtils;
  4. import com.lightinit.hsdatashow.common.SolrUtils;
  5. import com.lightinit.hsdatashow.json.pojo.JsonResult;
  6. import com.lightinit.hsdatashow.json.pojo.ListResult;
  7. import com.lightinit.hsdatashow.json.pojo.solr.*;
  8. import com.lightinit.hsdatashow.entity.Solrserver;
  9. import com.lightinit.hsdatashow.service.ISolrService;
  10. import org.apache.http.NameValuePair;
  11. import org.apache.http.message.BasicNameValuePair;
  12. import org.codehaus.jackson.JsonParseException;
  13. import org.codehaus.jackson.map.JsonMappingException;
  14. import org.codehaus.jackson.map.ObjectMapper;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.stereotype.Controller;
  17. import org.springframework.util.StringUtils;
  18. import org.springframework.web.bind.annotation.RequestMapping;
  19. import org.springframework.web.bind.annotation.RequestMethod;
  20. import org.springframework.web.bind.annotation.RequestParam;
  21. import org.springframework.web.bind.annotation.ResponseBody;
  22. import java.io.IOException;
  23. import java.util.*;
  24. /**
  25. * Created by Mr.Yao on 2017/11/2.
  26. */
  27. @Controller
  28. @RequestMapping("/solr")
  29. public class SolrController {
  30. // @Autowired
  31. // private HttpSolrClient httpSolrClient;
  32. @Autowired
  33. private ISolrService solrService;
  34. @RequestMapping(value = "view/broker.action",method = RequestMethod.GET)
  35. public String print_solr_view_broker(){
  36. return "solr/server";
  37. }
  38. @ResponseBody
  39. @RequestMapping(value = "json/server.action",method = RequestMethod.GET)
  40. public ListResult<Solrserver> print_JSON_Solr_Server(@RequestParam(defaultValue = "") String keyword) {
  41. ListResult<Solrserver> result = new ListResult<Solrserver>();
  42. List<String> list=new ArrayList<String>();
  43. result.setRows(solrService.querySolrServer(keyword));
  44. if (result.getRows()!=null){
  45. result.setTotal(result.getRows().size());
  46. }else{
  47. result.setTotal(0);
  48. }
  49. return result;
  50. }
  51. @ResponseBody
  52. @RequestMapping(value = "json/admin/core/detail.action",method = RequestMethod.GET)
  53. public CoreOverViewItemEntity print_json_solr_admin_core_detail(@RequestParam(defaultValue = "http://192.168.107.112:8080/solr") String service, @RequestParam(defaultValue = "") String core) {
  54. CoreOverViewItemEntity result = new CoreOverViewItemEntity();
  55. if (StringUtils.isEmpty(service) || StringUtils.isEmpty(core))
  56. return result;
  57. CoreOverViewResponseEntity item = SolrUtils.parse(service, core);
  58. if (item != null && item.getIndex() != null) {
  59. result = item.getIndex();
  60. }
  61. return result;
  62. }
  63. @ResponseBody
  64. @RequestMapping(value = "json/admin/cores.action",method = RequestMethod.GET)
  65. public ListResult<CoreItemDetailEntity> print_json_solr_admin_cores(@RequestParam(defaultValue = "") String service) {
  66. ListResult<CoreItemDetailEntity> result = new ListResult<CoreItemDetailEntity>();
  67. if(StringUtils.isEmpty(service))
  68. return result;
  69. List<CoreItemDetailEntity> mList=new ArrayList<CoreItemDetailEntity>();
  70. List<NameValuePair> nameValuePairs=new ArrayList<NameValuePair>();
  71. nameValuePairs.add(new BasicNameValuePair("wt","json"));
  72. nameValuePairs.add(new BasicNameValuePair("indexInfo","false"));
  73. nameValuePairs.add(new BasicNameValuePair("_",String.valueOf(System.currentTimeMillis())));
  74. String responseBody= HttpTookitUtils.doGet(service+"/admin/cores",nameValuePairs, CharEncoding.UTF8,"application/json");
  75. if(StringUtils.isEmpty(responseBody)==false) {
  76. ObjectMapper objectMapper = new ObjectMapper();
  77. try {
  78. CoreResponseEntity item = objectMapper.readValue(responseBody, CoreResponseEntity.class);
  79. if(item!=null && item.getStatus()!=null) {
  80. Iterator<Map.Entry<String, CoreItemEntity>> mIterator = item.getStatus().entrySet().iterator();
  81. while (mIterator.hasNext()) {
  82. Map.Entry<String, CoreItemEntity> entry = mIterator.next();
  83. CoreItemDetailEntity itemDetailEntity=new CoreItemDetailEntity(entry.getValue());
  84. CoreOverViewResponseEntity overviewItem = SolrUtils.parse(service, itemDetailEntity.getName());
  85. if (overviewItem != null && overviewItem.getIndex() != null) {
  86. CoreOverViewItemEntity coreOverViewItemEntity = overviewItem.getIndex();
  87. itemDetailEntity.setDeletedDocs(coreOverViewItemEntity.getDeletedDocs());
  88. itemDetailEntity.setLastModified(coreOverViewItemEntity.getLastModified());
  89. itemDetailEntity.setMaxDoc(coreOverViewItemEntity.getMaxDoc());
  90. itemDetailEntity.setNumDocs(coreOverViewItemEntity.getNumDocs());
  91. itemDetailEntity.setSegmentCount(coreOverViewItemEntity.getSegmentCount());
  92. }
  93. mList.add(itemDetailEntity);
  94. }
  95. }
  96. } catch (JsonParseException e) {
  97. e.printStackTrace();
  98. } catch (JsonMappingException e) {
  99. e.printStackTrace();
  100. } catch (IOException e) {
  101. e.printStackTrace();
  102. }
  103. }
  104. result.setRows(mList);
  105. if (result.getRows()!=null){
  106. result.setTotal(result.getRows().size());
  107. }else{
  108. result.setTotal(0);
  109. }
  110. return result;
  111. }
  112. @ResponseBody
  113. @RequestMapping(value = "json/admin/core/dataimport/refresh.action",method = RequestMethod.GET)
  114. public JsonResult print_json_solr_admin_core_dataimport_refresh(@RequestParam String service, @RequestParam String core, @RequestParam String entity) {
  115. JsonResult result = new JsonResult();
  116. if(StringUtils.isEmpty(service)) {
  117. result.setStatus(-1);
  118. result.setMessage("参数错误");
  119. return result;
  120. }
  121. List<CoreItemDetailEntity> mList=new ArrayList<CoreItemDetailEntity>();
  122. List<NameValuePair> nameValuePairs=new ArrayList<NameValuePair>();
  123. nameValuePairs.add(new BasicNameValuePair("wt","json"));
  124. nameValuePairs.add(new BasicNameValuePair("command","status"));
  125. nameValuePairs.add(new BasicNameValuePair("indent","true"));
  126. nameValuePairs.add(new BasicNameValuePair("_",String.valueOf(System.currentTimeMillis())));
  127. String responseBody= HttpTookitUtils.doGet(service+"/"+core+"/dataimport",nameValuePairs, CharEncoding.UTF8,"application/json");
  128. result.setStatus(1);
  129. result.setMessage(responseBody);
  130. return result;
  131. }
  132. @ResponseBody
  133. @RequestMapping(value = "json/admin/core/dataimport.action",method = RequestMethod.GET)
  134. public JsonResult print_json_solr_admin_core_dataimport(@RequestParam String service,@RequestParam String core,@RequestParam String entity) {
  135. JsonResult result = new JsonResult();
  136. if(StringUtils.isEmpty(service)){
  137. result.setStatus(-1);
  138. result.setMessage("参数错误");
  139. return result;
  140. }
  141. List<CoreItemDetailEntity> mList=new ArrayList<CoreItemDetailEntity>();
  142. List<NameValuePair> nameValuePairs=new ArrayList<NameValuePair>();
  143. nameValuePairs.add(new BasicNameValuePair("wt","json"));
  144. nameValuePairs.add(new BasicNameValuePair("command","full-import"));
  145. nameValuePairs.add(new BasicNameValuePair("clean","true"));
  146. nameValuePairs.add(new BasicNameValuePair("commit","true"));
  147. nameValuePairs.add(new BasicNameValuePair("entity",entity));
  148. nameValuePairs.add(new BasicNameValuePair("verbose","false"));
  149. nameValuePairs.add(new BasicNameValuePair("optimize","false"));
  150. nameValuePairs.add(new BasicNameValuePair("debug","false"));
  151. nameValuePairs.add(new BasicNameValuePair("indent","true"));
  152. nameValuePairs.add(new BasicNameValuePair("_",String.valueOf(System.currentTimeMillis())));
  153. String responseBody= HttpTookitUtils.doPost(service+"/"+core+"/dataimport",nameValuePairs, CharEncoding.UTF8,"application/json");
  154. result.setStatus(1);
  155. result.setMessage(responseBody);
  156. return result;
  157. }
  158. }