欢迎光临
我们一直在努力

es dsl语句,es dsl语法

首先添加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

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。