<!-- 指定 springboot 版本 --><parent> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-parent</artifactid> <version>2.5.7</version> <relativepath/></parent> <!-- 相关jar包 --><dependencies> <!-- springboot核心jar包 --> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter</artifactid> </dependency> <!-- web开发包:包含tomcat和springmvc --> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> <!-- es 核心包 --> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-data-elasticarch</artifactid> </dependency> <!-- lombok 实体简化插件 --> <dependency> <groupid>org.projectlombok</groupid> <artifactid>lombok</artifactid> <optional>true</optional> </dependency></dependencies>
elasticarch: host: 127.0.0.1 port: 9200
@data@configuration@configurationproperties(prefix = "elasticarch")public class elasticarchconfig extends abstractelasticarchconfiguration { private string host; private integer port; @override public resthighlevelclient elasticarchclient() { return new resthighlevelclient(restclient.builder(new httphost(host, port))); } }
@data@document(indexname = "urs")public class ur { @id @field(type = fieldtype.long) private long id; @field(type = fieldtype.text) private string name; @field(type = fieldtype.keyword) private string野刺梨 x; @field(type = fieldtype.integer) private integer age; @field(type = fieldtype.text) private string address; }
(5.1)contrller 层
@restcontroller@requestmapping("/ur")public class urcontroller { @autowired private urrvice urrvice; }
(5.2)rvice 层
public interface urrvice { }
(5.3)rvice 实现层(urdao 见 5.4)
@rvicepublic class urrviceimpl implements urrvice { @autowired private urdao urdao; }
(5.4)dao 层
@repositorypublic interface urdao extends elasticarchrepository<ur, long> { }
整个相关类创建完成后,项目结构应该如下图所示:
这里以实际功能举例,并列出 controller 和 rvice 层的实现类写法作为参考。
主流的一些功能,es 已经给你封装,默认给与了支持(如:示例1-6),这些相关的实现不需要我们再写 dao 层,但一些较为业务性的查询,还需要自己手动来写。
controller 层:
@postmapping("/save")public string save(@requestbody ur ur) { long id = system.currenttimemillis(); ur.tid(id); urrvice.save(ur); return "新增成功,id为:" + id;}
rvice 层:
@overridepublic long save(ur ur) { urdao.save(ur); return ur.getid();}
测试效果:
【注】新增文档和修改文档操作,dao 层都是调用的 save() 方法,当 id 不存在的时候,es(elasticarch)就会执行新增操作,当 id 对象已经存在的时候,就会执行修改操作。
controller 层:
@postmapping("/update")public string update(@requestbody ur ur) { urrvice.save(ur); return "修改成功";}
rvice 层:
@overridepublic long save(ur ur) { urdao.save(ur); return ur.getid();}
测试效果:
controller 层:
@getmapping("/{id}")public ur getbyid(@pathvariable("id") long id) { return urrvice.getbyid(id);}
rvice 层:
@overridepublic ur getbyid(long id) { optional<ur> find = urdao.findbyid(id); if (find.isprent()) { return find.get(); } return null;}
测试效果:
controller 层:
@deletemapping("/{id}")public string deletebyid(@pathvariable("id") long id) { urr数学教研工作总结vice.deletebyid(id); return "删除成功";}
rvice 层:
@overridepublic void deletebyid(long id) { urdao.deletebyid(id);}
测试效果:
controller 层:
@getmapping("/all")public list<ur> all() { return urrvice.getall();}
rvice 层:
@overridepublic list<ur> getall() { iterable<ur> urs = urdao.findall(); if (urs == null) { return collections.emptylist(); } list<ur> urlist = new arraylist<ur>(); urs.foreach(o -> urlist.add(o)); return urlist;}
测试效果:
如:查询name包含”玛丽”的数据
controller 层:
@getmapping("/listbyname")public list<ur> listbyname(string name) { return urrvice.getlistbyname(name);}
rvice 层:
@overridepublic list<ur> getlistbyname(string name) { return urdao.findbyname(name);}
dao 层:测试效果:
如:查询 name包含”玛丽”,年龄为25的数据。
controller 层:
@getmapping("/listbynameandage")public list<ur> listbynameandage(string name, integer age) { return urrvice.getlistbynameandage(name, age);}
rvice 层:
@overridepublic list<ur> getlistbynameandage(string name, integer age) { return urdao.findbynameandage(name, age);}
dao 层:
list<ur> findbynameandage(string name, integer age);
controller 层:
@getmapping("/listorderbyagedesc")江苏大学怎么样public list<ur> listorderbyagedesc() { return urrvice.getlistorderbyagedesc();}
rvice 层:
@overridepublic list<ur> getlistorderbyagedesc() { return urdao.findbyorderbyagedesc();}
dao 层:
list<ur> findbyorderbyagedesc();
测试效果:
controller 层:
@getmapping("/listorderbyageasc")public list<ur> listorderbyageasc() { return urrvice.getlistorderbyageasc();}
rvice 层:
@overridepublic list<ur> getlistorderbyageasc() { return urdao.findbyorderbyageasc();}
dao 层:
list<ur> findbyorderbyageasc();
测试效果:
controller 层:
@getmapping("/page")public page<ur> page(integer pagenum, integer pagesize) { return urrvice.getpage(pagenum, pagesize);}
rvice 层:
@overridepublic page<ur> getpage(int pagenum, int pagesize) { // 注意,这里的pagenum是从0开始的,如果要查询第1页数据,pagenum应该为0 pageable pageable = pagerequest.of(pagenum, pagesize); return urdao.findall(pageable);}
测试效果:
controller 层:
@getmapping("/listgreaterthanage")public list<ur> listgreaterthanage(integer age) { return urrvice.getlistgreaterthanage(age);}
rvice 层:
@overridepublic list<ur> getlistgreaterthanage(integer age) { return urdao.findbyagegreaterthan(age);}
dao 层:
韩栋个人资料list<ur> findbyagegreaterthan(integer age);
测试效果:
controller 层:
@getmapping("/listgreaterthanequalage")public list<ur> listgreaterthanequalage(integer age) { return urrvice.getlistgreaterthanequalage(age);}
rvice 层:
@overridepublic list<ur> getlistgreaterthanequalage(integer age) { return urdao.findbyagegreaterthanequal(age);}
dao 层:
list<ur> findbyagegreaterthanequal(integer age);
测试效果:
controller 层:
@getmapping("/listlessthanage")public list<ur> listlessthanage(integer age) { return urrvice.getlistlessthanage(age);}
rvice 层:
@overridepublic list<ur> getlistlessthanage(integer age) { return urdao.findbyagelessthan(age);}
dao 层:
list<ur> findbyagelessthan(integer age);
测试效果:
controller 层:
@getmapping("/listlessthanequalage")public list<ur> listlessthanequalage(integer age) { return urrvice.getlistlessthanequalage(age);}
rvice 层:
@overridepublic list<ur> getlistlessthanequalage(integer age) { return urdao.findbyagelessthanequal(age);}
dao 层:
list<ur> findbyagelessthanequal(integer age);
测试效果:
1. 获取elasticarch中所有的index:
curl -xget ‘localhost:9200/_cat/indices?v&pretty’
2. 获取某索引下所有的type:
获取elasticarch索引下所有的type定义
curl -xget ‘localhost:9200/elasticarch/_mapping’
3. 删除索引:
删除elasticarch1索引
curl -xdelete ‘localhost:9200/elasticarch1?pretty’
4. 删除某索引下的某type数据:
删除索引elasticarch下的article类型
curl -xdelete ‘http://localhost:9200/elasticarch/article/’
5. 查看某索引的某type下所有的数据:
查找elasticarch索引中所有的类型为company的数据
http://localhost:9200/elasticarch/company/_arch
到此这篇关于springboot集成elasticarch的文章就介绍到这了,更多相关springboot集成elasticarch内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!
本文发布于:2023-04-04 02:54:48,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/89bf6375506315aa03a96fec7163a8b5.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:Springboot集成Elasticsearch的步骤与相关功能.doc
本文 PDF 下载地址:Springboot集成Elasticsearch的步骤与相关功能.pdf
留言与评论(共有 0 条评论) |