SpringData整合Elasticsearch

来源:互联网 发布:网络拓扑图图标下载 编辑:程序博客网 时间:2024/05/22 03:14

GitHub上有一个大牛上传过SpringData整合Elasticsearch,不过他的项目跑不起来,我自己改写一下跑起来了,等我交代完细节后会把源码上传
第一步:配置项目POM文件

<?xml version="1.0" encoding="UTF-8"?><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">    <groupId>test.me</groupId>    <version>1.0-SNAPSHOT</version>    <modelVersion>4.0.0</modelVersion>    <artifactId>test.spring.data.es</artifactId>    <properties>            <spring.version>4.2.0.RELEASE</spring.version>            <java.version>1.7</java.version>        </properties>        <dependencies>            <dependency>                <groupId>junit</groupId>                <artifactId>junit</artifactId>                <version>4.12</version>                <scope>test</scope>            </dependency>             <!-- 配置Spring -->            <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-context</artifactId>                <version>${spring.version}</version>            </dependency>            <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-context-support</artifactId>                <version>${spring.version}</version>            </dependency>                       <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-test</artifactId>                <version>${spring.version}</version>            </dependency>            <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-core</artifactId>                <version>${spring.version}</version>            </dependency>            <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-beans</artifactId>                <version>${spring.version}</version>            </dependency>            <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-web</artifactId>                <version>${spring.version}</version>            </dependency>            <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-jdbc</artifactId>                <version>${spring.version}</version>            </dependency>            <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-aop</artifactId>                <version>${spring.version}</version>            </dependency>            <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-tx</artifactId>                <version>${spring.version}</version>            </dependency>            <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-webmvc</artifactId>                <version>${spring.version}</version>            </dependency>            <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-orm</artifactId>                <version>${spring.version}</version>            </dependency>        <!-- elasticsearch package -->            <dependency>                <groupId>fr.pilato.spring</groupId>                <artifactId>spring-elasticsearch</artifactId>                <version>1.0.0</version>            </dependency>            <dependency>                <groupId>org.elasticsearch</groupId>                <artifactId>elasticsearch</artifactId>                <version>1.0.0</version>            </dependency>            <dependency>                <groupId>org.springframework.data</groupId>                <artifactId>spring-data-elasticsearch</artifactId>                <version>1.0.0.RELEASE</version>            </dependency>            <!--json-lib -->            <dependency>                <groupId>net.sf.json-lib</groupId>                <artifactId>json-lib</artifactId>                <version>2.4</version>                <classifier>jdk15</classifier>            </dependency>            <!-- log4j -->            <dependency>                <groupId>org.slf4j</groupId>                <artifactId>slf4j-log4j12</artifactId>                <version>1.7.5</version>            </dependency>     </dependencies>        <build>            <finalName>test_spring_data_es</finalName>        </build>    </project>

第二步:看一下实体的配置

package name.liuxi.domain;import org.springframework.data.annotation.Id;import org.springframework.data.elasticsearch.annotations.Document;@Document(indexName = "test_es_order_index", type = "test_es_order_type")public class Order {    @Id    private Long id;    private String userName;    private String skuName;    public Long getId() {        return id;    }    public void setId(Long id) {        this.id = id;    }    public String getUserName() {        return userName;    }    public void setUserName(String userName) {        this.userName = userName;    }    public String getSkuName() {        return skuName;    }    public void setSkuName(String skuName) {        this.skuName = skuName;    }    @Override    public String toString() {        return "Order{" +                "id=" + id +                ", userName='" + userName + '\'' +                ", skuName='" + skuName + '\'' +                '}';    }}

注意:indexName 相当于对type进行分类,type相当于一张表

剩下的配置我不讲了,直接把项目发给大家,因为SpringData我已经用它整合过Redis、MQ、Hibernate、Elasticsearch
GitHub地址:https://github.com/zzuhub/springdata-elasticsearch-rep.git