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

posted @ 2018-05-25 14:43  随风而逝,只是飘零  阅读(3146)  评论(0编辑  收藏  举报