springboot整合elasticsearch


elasticsearch整合springboot

es官网: https://www.elastic.co/guide/index.html

安装es

# 若启动不了,则需要加上下面的参数
# -e ES_JAVA_OPTS="-Xms512m -Xmx512m" #指定默认内存大小

docker run -d --rm --name elasticsearch elasticsearch:6.8.12
docker cp elasticsearch:/usr/share/elasticsearch/config/ /usr/local/es/
docker cp elasticsearch:/usr/share/elasticsearch/data/ /usr/local/es/
docker stop elasticsearch

docker run -d --name elasticsearch \
 -p 9200:9200 -p 9300:9300 \
 -v /usr/local/es/data:/usr/share/elasticsearch/data \
 -v /usr/local/es/config:/usr/share/elasticsearch/config \
 -e "discovery.type=single-node" \
 elasticsearch:6.8.12

访问 http://localhost:9200 安装成功则显示

安装成功


安装图形化界面–Dejavu

cat >>/usr/local/es/config/elasticsearch.yml <<EOF
http.port: 9200
http.cors.allow-origin: 'http://localhost:1358'
http.cors.enabled: true
http.cors.allow-headers: X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
http.cors.allow-credentials: true
EOF

# Dejavu es图形化界面
docker run -d -p 1358:1358 -d --name dejavu appbaseio/dejavu
# open http://localhost:1358/

操作面板
dejavu


整合springboot

spring官方工具包 - Spring Data Elasticsearch: https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/

版本说明
版本兼容

示例

可参考简单示例代码

  1. 当前springboot版本2.2.13.RELEASE
  2. 依赖导入
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-elasticsearch</artifactId>
    <version>3.2.13.RELEASE</version>
</dependency>
  1. es配置文件
spring:
  data:
    elasticsearch:
      repositories:
        enabled: true
      # 集群名称
      # 如果不配会导致cluster-nodes的节点找不到
      cluster-name: docker-cluster
      # 集群节点
      cluster-nodes: 127.0.0.1:9300

项目整合方式

简单集成es可采用无入侵的方式,通过切面编程以注解方式实现数据的同步。具体请根据实际开发需求确定。

  1. 增删改:注意根据数据库返回结果来同步操作es数据,例如:新增、删除根据结果同步数据,修改根据id同步

注解参数:操作类型、实体类型

  1. 查询:分为单索引查询、多索引聚合查询
  2. 单索引查询:数据与实体类关联,直接查询
  3. 聚合查询:定义好返回的通用数据结构
好的,下面是SpringBoot整合elasticsearch的步骤: 1. 引入elasticsearchspring-boot-starter-data-elasticsearch的依赖: ``` <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>7.12.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> <version>2.4.5</version> </dependency> ``` 2. 配置elasticsearch连接信息: ``` spring.data.elasticsearch.cluster-nodes=localhost:9200 ``` 3. 创建实体类: ``` @Document(indexName = "my_index") public class MyEntity { @Id private String id; private String name; // getter and setter } ``` 4. 创建es的Repository: ``` public interface MyRepository extends ElasticsearchRepository<MyEntity, String> { } ``` 5. 在service中使用Repository: ``` @Service public class MyService { @Autowired private MyRepository myRepository; public void save(MyEntity entity) { myRepository.save(entity); } public List<MyEntity> search(String name) { return myRepository.findByName(name); } } ``` 6. 在controller中调用service: ``` @RestController public class MyController { @Autowired private MyService myService; @PostMapping("/save") public void save(@RequestBody MyEntity entity) { myService.save(entity); } @GetMapping("/search") public List<MyEntity> search(@RequestParam String name) { return myService.search(name); } } ``` 这样就可以通过SpringBoot整合elasticsearch实现数据的增删改查了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值