• springboot+elasticsearch配置实现


     1 <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">
     2   <modelVersion>4.0.0</modelVersion>
     3   <groupId>elasticsearch</groupId>
     4   <artifactId>elasticsearch</artifactId>
     5   <version>0.0.1-SNAPSHOT</version>
     6   
     7     <parent>
     8         <groupId>org.springframework.boot</groupId>
     9         <artifactId>spring-boot-starter-parent</artifactId>
    10         <version>1.5.8.RELEASE</version>
    11     </parent>
    12 
    13     <properties>
    14         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    15         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    16         <java.version>1.8</java.version>
    17     </properties>
    18 
    19     <dependencies>
    20         <dependency>
    21             <groupId>org.springframework.boot</groupId>
    22             <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
    23         </dependency>
    24         <dependency>
    25             <groupId>org.springframework.boot</groupId>
    26             <artifactId>spring-boot-starter-web</artifactId>
    27         </dependency>
    28         <dependency>
    29             <groupId>net.java.dev.jna</groupId>
    30             <artifactId>jna</artifactId>
    31             <version>3.0.9</version>
    32         </dependency>
    33 
    34         <dependency>
    35             <groupId>org.springframework.boot</groupId>
    36             <artifactId>spring-boot-starter-test</artifactId>
    37             <scope>test</scope>
    38         </dependency>
    39     </dependencies>
    40     
    41     <build>
    42         <resources>
    43             <resource>
    44                 <directory>src/main/resources/${build.profile.id}</directory>
    45                 <filtering>false</filtering>
    46             </resource>    
    47         </resources>
    48         <plugins>
    49             <!-- spring boot maven插件,可以将项目打包成一个可执行的jar文件 -->
    50             <plugin>
    51                 <groupId>org.springframework.boot</groupId>
    52                 <artifactId>spring-boot-maven-plugin</artifactId>
    53                 <configuration>
    54                     <!-- 该配置使devtools生效 -->
    55                     <fork>true</fork>
    56                 </configuration>
    57             </plugin>
    58         </plugins>
    59         <finalName>newtouch-ms-platform</finalName>
    60     </build>
    61     
    62 </project>
    pom.xml
    1 spring.data.elasticsearch.cluster-name=elasticsearch 
    2 spring.data.elasticsearch.cluster-nodes=170.20.1.115:9200
    3 spring.data.elasticsearch.repositories.enable=true
    application.properties
    package com.newtouch.elasticsearch.elasticsearch.repository;
    
    import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
    import org.springframework.stereotype.Component;
    
    import com.newtouch.elasticsearch.elasticsearch.document.BookDocument;
    @Component
    public interface BookSearchRepository extends ElasticsearchRepository<BookDocument, Long>{
    
    }
    package com.newtouch.elasticsearch.elasticsearch.document;
    
    import org.springframework.data.annotation.Id;
    import org.springframework.data.elasticsearch.annotations.Document;
    
    @Document(indexName ="megacorp",type = "book", shards = 1,replicas = 0, refreshInterval = "-1")
    public class BookDocument {
    
        @Id
        private int id;
        
        private String name;
    
        private String title;
    
        private String auther;
        
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getTitle() {
            return title;
        }
        public void setTitle(String title) {
            this.title = title;
        }
        public String getAuther() {
            return auther;
        }
        public void setAuther(String auther) {
            this.auther = auther;
        }
        
    }
     1 @Persistent
     2 @Inherited
     3 @Retention(RetentionPolicy.RUNTIME)
     4 @Target({ElementType.TYPE})
     5 public @interface Document {
     6  
     7     String indexName();//索引库的名称,个人建议以项目的名称命名
     8  
     9     String type() default "";//类型,个人建议以实体的名称命名
    10  
    11     short shards() default 5;//默认分区数
    12  
    13     short replicas() default 1;//每个分区默认的备份数
    14  
    15     String refreshInterval() default "1s";//刷新间隔
    16  
    17     String indexStoreType() default "fs";//索引文件存储类型
    18 }
    @Document注解
    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.FIELD)
    @Documented
    @Inherited
    public @interface Field {
     
        FieldType type() default FieldType.Auto;#自动检测属性的类型
     
        FieldIndex index() default FieldIndex.analyzed;#默认情况下分词
     
        DateFormat format() default DateFormat.none;
     
        String pattern() default "";
     
        boolean store() default false;#默认情况下不存储原文
     
        String searchAnalyzer() default "";#指定字段搜索时使用的分词器
     
        String indexAnalyzer() default "";#指定字段建立索引时指定的分词器
     
        String[] ignoreFields() default {};#如果某个字段需要被忽略
     
        boolean includeInParent() default false;
    }
    @Field注解

    可以参考:http://www.tianshouzhi.com/api/tutorials/elasticsearch/159

  • 相关阅读:
    你真的会用Android的Dialog吗?由一个Exception想到的
    请慎用java的File#renameTo(File)方法
    Android核心分析(16)Android电话系统概述篇
    java.lang.UnsupportedOperationException
    fastboot 刷新 system.img 出现 data too large 错误
    Android是什么 之三手机之硬件形态
    快速重建system.img
    Android 核心分析 之五 基本空间划分
    Android核心分析之四 手机的软件形态
    Android核心分析(15)Android输入系统之输入路径详解k
  • 原文地址:https://www.cnblogs.com/zxf330301/p/9088517.html
Copyright © 2020-2023  润新知