ES整合springboot (入门)

Posted JAVAEE交流

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES整合springboot (入门)相关的知识,希望对你有一定的参考价值。

Elasticsearch简单介绍

Elasticsearch (ES)是一个基于Lucene构建的开源、分布式、RESTful 接口全文搜索引擎。Elasticsearch 还是一个分布式文档数据库,其中每个字段均是被索引的数据且可被搜索,它能够扩展至数以百计的服务器存储以及处理PB级的数据。它可以在很短的时间内在储、搜索和分析大量的数据。它通常作为具有复杂搜索场景情况下的核心发动机。
Elasticsearch就是为高可用和可扩展而生的。可以通过购置性能更强的服务器来完成。


Elasticsearch优势

横向可扩展性:只需要增加台服务器,做一点儿配置,启动一下Elasticsearch就可以并入集群。

分片机制提供更好的分布性:同一个索引分成多个分片(sharding), 这点类似于HDFS的块机制;分而治之的方式可提升处理效率。

高可用:提供复制( replica) 机制,一个分片可以设置多个复制,使得某台服务器在宕机的情况下,集群仍旧可以照常运行,并会把服务器宕机丢失的数据信息复制恢复到其他可用节点上。
口使用简单:共需一条命令就可以下载文件,然后很快就能搭建一一个站内搜索引擎


Elasticsearch应用场景

大型分布式日志分析系统ELK  elasticsearch(存储日志)+logstash(收集日志)+kibana(展示数据)
大型电商商品搜索系统、网盘搜索引擎等。


maven依赖

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version><relativePath /> <!-- lookup parent from repository --></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency></dependencies>

application.yml

spring: data: elasticsearch: ####集群名称 注意名称 要和配置中名称保持一致  cluster-name: docker-cluster ####地址     cluster-nodes: 127.0.0.1:9300

实体类层

@Document(indexName = "UserLogs", type = "user")@Datapublic class UserEntity {@Idprivate String id;private String name;private int sex;private int age;}

Dao类层

public interface UserReposiory extends CrudRepository<UserEntity, String> { }

控制层

@RestControllerpublic class EsController { @Autowiredprivate UserReposiory userReposiory; @RequestMapping("/addUser")public UserEntity addUser(@RequestBody UserEntity user) {return userReposiory.save(user);} @RequestMapping("/findUser")public Optional<UserEntity> findUser(String id) {return userReposiory.findById(id);}}

项目启动

@SpringBootApplication@EnableElasticsearchRepositories(basePackages = "com.es.dao")public class AppEs { public static void main(String[] args) {SpringApplication.run(AppEs.class, args);}}


以上是关于ES整合springboot (入门)的主要内容,如果未能解决你的问题,请参考以下文章

ElasticSearch04_elasticsearch-Rest-Client整合SpringBoot中使用保存数据利用JAVA代码操作es

ElasticSearch04_elasticsearch-Rest-Client整合SpringBoot中使用保存数据利用JAVA代码操作es

商城项目19_elasticsearch-Rest-Client整合SpringBoot中使用保存数据利用JAVA代码操作es

ElasticSearch04_elasticsearch-Rest-Client整合SpringBoot中使用保存数据利用JAVA代码操作es

商城项目19_elasticsearch-Rest-Client整合SpringBoot中使用保存数据利用JAVA代码操作es

全栈编程系列SpringBoot整合Shiro(含KickoutSessionControlFilter并发在线人数控制以及不生效问题配置启动异常No SecurityManager...)(代码片段