SpringDataES查询方式

网友投稿 663 2022-11-21

SpringDataES查询方式

SpringDataES查询方式

使用Repository继承的方法查询文档使用DSL语句查询文档ES通过json类型的请求体查询文档,方法如下:

GET /索引/_search { "query":{ 搜索方式:搜索参数 } }

query后的json对象称为DSL语句,我们可以在接口方法上使用@Query注解自定义DSL语句查询。

@Query("{" + " \"match\": {" + " \"desc\": \"?0\"" + " }" + " }") List findByProductDescMatch(String key); @Query("{" + " \"match\": {" + " \"desc\": {" + " \"query\": \"?0\"," + " \"fuzziness\": 1" + " }" + " }" + " }")

List findByProductDescFuzzy(String key); List findByName(String name); List findByNameOrDesc(String name,String desc); List findByNameAndDesc(String name,String desc); List findByIdBetween(Integer startId,Integer endId);

分页查询使用继承或自定义的方法时,在方法中添加Pageable类型的参数,返回值为Page类型即可进行分页查询。

// 测试继承的方法: // 参数1:页数 参数2:每页条数Pageable pageable = PageRequest.of(0,3); Page page = repository.findAll(pageable); System.out.println(page.getContent()); System.out.println(page.getTotalElements()); System.out.println(page.getTotalPages());// 自定义方法 Page findByProductDesc(String productDesc, Pageable pageable); // 测试自定义方法 Pageable pageable = PageRequest.of(1,3); Page page = repository.findByProductDesc("优秀",pageable); System.out.println(page.getContent()); System.out.println(page.getTotalElements()); System.out.println(page.getTotalPages());

结果排序使用继承或自定义的方法时,在方法中添加Sort类型的参数即可进行结果排序。

Sort sort = Sort.by(Sort.Direction.DESC,"id"); Iterable products = repository.findAll(sort); for (Product product:products) System.out.println(product);

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:线性表中模拟单链表(add/remove)操作
下一篇:Spark Transformation算子->union
相关文章

 发表评论

暂时没有评论,来抢沙发吧~