SpringBoot 集成Elasticsearch

Posted pickknow

tags:

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

1 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>

 

2,创建实体类

package com.aiyuesheng.entity;

import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;

import lombok.Data;

// 指定了索引,类型
@Document(indexName = "myindex", type = "user")  
@Data
public class UserEntity 
    @Id
    private String id;
    private String name;
    private String sex;
    private int age;

3,创建接口extends增删改查CrudRepository()

package com.aiyuesheng.dao;

import org.springframework.data.repository.CrudRepository;

import com.aiyuesheng.entity.UserEntity;

public interface UserReposiory extends CrudRepository<UserEntity, String> 

4,创建接口层

package com.aiyuesheng.service;

import java.util.Optional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.aiyuesheng.dao.UserReposiory;
import com.aiyuesheng.entity.UserEntity;

@RestController
public class EsController 

    @Autowired
    private UserReposiory userReposiory;

//可以用postman 模拟请求 @RequestMapping(
"/addUser") public UserEntity addUser(@RequestBody UserEntity user) return userReposiory.save(user); @RequestMapping("/findUser") public Optional<UserEntity> findUser(String id) return userReposiory.findById(id);

5,启动类:

// 需要加入扫包的范围
@SpringBootApplication @EnableElasticsearchRepositories(basePackages
= "com.aiyuesheng.dao") public class App public static void main(String[] args) SpringApplication.run(App.class, args);

7,配置文件:

spring:
  data:
    elasticsearch:
    ####集群名称
     cluster-name: myes
    ####地址 
     cluster-nodes: 192.168.178.110:9300

8,在ElasticSearch 服务中,要把cluster-name 开启,相当于,springboot 程序和ElasticSearch 对接:

vi /usr/local/elasticsearch-6.4.3/config/elasticsearch.yml

cluster.name: myes

 

以上是关于SpringBoot 集成Elasticsearch的主要内容,如果未能解决你的问题,请参考以下文章

在并发情况下,Elasticsearc 如果保证读写一致?

ElasticSearch知识概括

ElasticSearch知识概括

ElasticSearch知识概括

springboot集成ES,以及应用

SpringBoot集成Kafka