/** 生成索引 */ @RequestMapping(value = "/build", method = RequestMethod.POST) public @ResponseBody Map<String, Object> build( BuildType buildType, Boolean isPurge, Integer first, Integer count) { long startTime = System.currentTimeMillis(); if (first == null || first < 0) { first = 0; } if (count == null || count <= 0) { count = 50; } int buildCount = 0; boolean isCompleted = true; if (buildType == BuildType.article) { if (first == 0 && isPurge != null && isPurge) { searchService.purge(Article.class); } List<Article> articles = articleService.findList(null, null, null, first, count); for (Article article : articles) { searchService.index(article); buildCount++; } first += articles.size(); if (articles.size() == count) { isCompleted = false; } } else if (buildType == BuildType.product) { if (first == 0 && isPurge != null && isPurge) { searchService.purge(Product.class); } List<Product> products = productService.findList(null, null, null, first, count); for (Product product : products) { searchService.index(product); buildCount++; } first += products.size(); if (products.size() == count) { isCompleted = false; } } long endTime = System.currentTimeMillis(); Map<String, Object> map = new HashMap<String, Object>(); map.put("first", first); map.put("buildCount", buildCount); map.put("buildTime", endTime - startTime); map.put("isCompleted", isCompleted); return map; }