zoukankan      html  css  js  c++  java
  • Spring Boot 系列教程20-elasticsearch

    GitHub

    elasticsearch

    • ElasticSearch是一个基于Lucene的搜索服务器。
    • 它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。
    • 设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    开发环境

    • jdk1.8.0_111(建议Oracle JDK版本1.8.0_73后)
    • org.springframework.boot 1.4.2.RELEASE
    • spring-data-elasticsearch-2.0.5.RELEASE.jar

    pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.jege.spring.boot</groupId>
        <artifactId>spring-boot-elasticsearch</artifactId>
        <version>1.0.0.RELEASE</version>
        <packaging>jar</packaging>
    
        <name>spring-boot-elasticsearch</name>
        <url>http://blog.csdn.net/je_ge</url>
    
        <developers>
            <developer>
                <id>je_ge</id>
                <name>je_ge</name>
                <email>1272434821@qq.com</email>
                <url>http://blog.csdn.net/je_ge</url>
                <timezone>8</timezone>
            </developer>
        </developers>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.4.2.RELEASE</version>
            <relativePath />
        </parent>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
    
            <!-- web -->
            <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.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
    
        </dependencies>
    
        <build>
            <finalName>spring-boot-elasticsearch</finalName>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>
    

    application.properties

    #存储索引的位置
    spring.data.elasticsearch.properties.path.home=target/elastic
    #连接超时的时间
    spring.data.elasticsearch.properties.transport.tcp.connect_timeout=120s

    User

    import org.springframework.data.annotation.Id;
    import org.springframework.data.elasticsearch.annotations.Document;
    
    /**
     * @author JE哥
     * @email 1272434821@qq.com
     * @description:elasticsearch模型类
     */
    @Document(indexName = "user", type = "user", shards = 1, replicas = 0, refreshInterval = "-1")
    public class User {
      @Id
      private String id;
      private String name;
      private int age;

    UserRepository

    public interface UserRepository extends ElasticsearchRepository<User, Long> 

    UserServiceImpl

    @Service
    public class UserServiceImpl implements UserService {
      @Autowired
      private UserRepository userRepository;
    
      @Override
      public void save(User user) {
        userRepository.save(user);
      }
    
      @Override
      public Iterable<User> findAll() {
        return userRepository.findAll();
      }
    
    }
    

    UserController

    @RestController
    @RequestMapping(value = "/es/")
    public class UserController {
      @Autowired
      private UserService userService;
    
      @RequestMapping("/list")
      public Iterable<User> list() {
        userService.save(new User("je_ge", 33));
        return userService.findAll();
      }
    }
    

    访问流程

    {"content":[{"id":"AVnQx4i3pXUZjTYvVwwS","name":"je_ge","age":33}],"totalElements":1,"totalPages":1,"last":true,"number":0,"size":1,"sort":null,"numberOfElements":1,"first":true}

    其他关联项目

    源码地址

    https://github.com/je-ge/spring-boot

    如果觉得我的文章或者代码对您有帮助,可以请我喝杯咖啡。
    您的支持将鼓励我继续创作!谢谢!
    微信打赏
    支付宝打赏

  • 相关阅读:
    [转]Connecting To SQLite Database Using Node.js
    [转]Ubuntu安装ss客户端
    ubuntu18.04连接pptpd服务器(未成功)
    ubuntu18.04安装DB2 11.1 Express-c
    ubuntu 18.04使用sysbench测试MySQL性能
    ubuntu18.04手动安装二进制MySQL8.0
    ubuntu 18.04下载mysql8.0.13源码并编译安装(暂时没有成功)
    Linux使用sleep进行延迟实验
    『浅入浅出』MySQL 和 InnoDB
    『浅入深出』MySQL 中事务的实现
  • 原文地址:https://www.cnblogs.com/je-ge/p/6361566.html
Copyright © 2011-2022 走看看