一共有8998个中医关键词,要实现可以根据中文/英文检索到关键词并展示其内容。
检索功能支持模糊查询和分页查询
1、根据中文检索
public List<TCMResult> findByC(String s_name, int pageIndex){
Pattern pattern = Pattern.compile(".*?"+s_name+".*?");
Query query = new Query();
query.skip((pageIndex - 1) * 10);
query.limit(10);
query.addCriteria(Criteria.where("SimplifiedName").regex(pattern));
return mongoTemplate.find(query, TCMResult.class);
}
2、根据英文检索
public List<TCMResult> findByEng(String e_name, int pageIndex){
Pattern pattern = Pattern.compile(".*"+e_name+".*?");
Query query = new Query();
query.skip((pageIndex - 1) * 10);
query.limit(10);
query.addCriteria(Criteria.where("EnglishNames").in(pattern)); // .regex(pattern)
return mongoTemplate.find(query, TCMResult.class);
}
后端以springboot框架开发
controller调用service调用dao来获取结果。
通过注解和mongotemplate来查询mongodb数据库。
controller:
@GetMapping("/getbyCh")
public R getResbyCh(@RequestParam String ch, int page){
int count = resultService.getCount(ch, true);
return new R(true, count, resultService.getbych(ch, page));
}
@GetMapping("/getbyEng")
public R getbyEng(@RequestParam String eng, int page){
int count = resultService.getCount(eng, false);
return new R(true, count, resultService.getbyeng(eng, page));
}