首先添加bboss依赖
<dependency> <groupId>com.bbossgroups.plugins</groupId> <artifactId>bboss-elasticsearch-rest-jdbc</artifactId> <version>5.9.9</version> <exclusions> <exclusion> <artifactId>slf4j-log4j12</artifactId> <groupId>org.slf4j</groupId> </exclusion> </exclusions></dependency><dependency> <groupId>com.bbossgroups.plugins</groupId> <artifactId>bboss-elasticsearch-spring-boot-starter</artifactId> <version>5.9.9</version> <exclusions> <exclusion> <artifactId>slf4j-log4j12</artifactId> <groupId>org.slf4j</groupId> </exclusion> </exclusions></dependency>
创建一个xml文件,写入dsl语句,注意语句要包在<![CDATA[? dsl语句? ]]>中
xml文件放在 resources>esmapper包下
<property name=”selectWildcard”> <![CDATA[ {“query”: {“bool”: {“should”: [{“wildcard”: {“company_name”:#[value]}},{“wildcard”: {“company_type”:#[value]}},{“wildcard”: {“industry_type”:#[value]}}]}}, “sort”:{ “id”:{ “order”:”desc” } }, “from”: #[start], “size”: #[limit]} ]]> </property>
Service中创建一个接口:
R wildcard(Map<String,Object> param);
serviceImpl中实现接口:
@Override public R wildcard(Map<String, Object> param) { String value=”*”+param.get(“value”)+”*”; param.put(“value”,value); param.put(“start”,(Integer.parseInt(param.get(“page”).toString())-1)*Integer.parseInt(param.get(“limit”).toString())); Query query=new Query(param); ClientInterface clientUtil = ElasticSearchHelper.getConfigRestClientUtil(“esmapper/show.xml”); ESDatas<ShowEntity> esDatas = //ESDatas包含当前检索的记录集合,最多1000条记录,由dsl中的size属性指定 clientUtil.searchList(“company/_doc/_search”,//demo为索引表,_search为检索操作action “selectWildcard”,//esmapper/demo.xml中定义的dsl语句 param,//变量参数 ShowEntity.class); PageUtils page=new PageUtils(esDatas.getDatas(),new Long(esDatas.getTotalSize()).intValue(), query.getLimit(), query.getPage()); return R.ok().put(“page”, page); }
Controller:
@RequestMapping(“/list”) public R entity(@RequestParam(required = false) Map<String, Object> param) { try { val value = param.get(“value”); if(value !=””) { return showInfoService.wildcard(param); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return R.error(“系统异常,请联系管理员”); } }
postman测试结果:
使用bboss的前提是已经使用spring集成了Elasticsearch
?
09939592