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

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

  • 相关阅读:
    webpack高级概念code splitting 和 splitChunks (系列五)
    webpack高级概念Develoment 和 Production 不同环境的配置 (系列四)
    webpack高级概念Tree Shaking (树摇)(系列三)
    HarmonyOS三方件开发指南(16)-VideoCache 视频缓存
    鸿蒙开源第三方组件——uCrop_ohos图片裁剪组件
    Hi3516如何连接Wifi(三)
    【鸿蒙学院】鸿蒙IDE迎来重大更新,新特性足以让你尖叫
    《鸿蒙系统物联网模组——Neptune 三天全攻略》课件、代码
    预览器和编辑器双重发力,DevEco Studio 2.1 Beta 3强势来袭
    强大的鸿蒙开发环境 —— DevEco Studio 2.1 Beta3发布
  • 原文地址:https://www.cnblogs.com/je-ge/p/6361566.html
Copyright © 2011-2022 走看看