Spring Data ElasticSearch 的入门使用

1、 基于 maven 导入坐标

主要是elasticSearch开发包,Spring-elasticSearch整合包,两个测试包和一个日志包

<dependency>
          <groupId>org.elasticsearch</groupId>
          <artifactId>elasticsearch</artifactId>
          <version>2.4.0</version>
  </dependency>

<dependency>
     <groupId>
            org.springframework.data
    </groupId>
      <artifactId>
            spring-data-elasticsearch
    </artifactId>
          <version>2.0.4.RELEASE</version>
 </dependency>

<dependency>
          <groupId>
            org.springframework
        </groupId>
          <artifactId>spring-test</artifactId>
          <version>4.2.8.RELEASE</version>
</dependency>

<dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.12</version>
 </dependency>

      <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-log4j12</artifactId>
          <version>1.7.12</version>
      </dependency>

2、配置applicationContext.xml

1、引入 spring data elasticsearch 名称空间
xmlns:elasticsearch="http://www.springframework.org/schema/data/elasticsearch"
约束文档
http://www.springframework.org/schema/data/elasticsearch
http://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch-1.0.xsd 

2、扫描DAO包 自动创建实现
 <elasticsearch:repositories   base-package="com.alibaba.test.dao" />

3、配置elasticsearch 连接,(搜索服务服务器对象)
 <elasticsearch:transport-client id="client" cluster-nodes="localhost:9300" />
     
4、spring data elasticsearch DAO 必须依赖spring提供的elasticsearchTemplate模板
     <bean id="elasticsearchTemplate" 
         class="org.springframework.data.elasticsearch.core.ElasticsearchTemplate">
         <constructor-arg name="client"  ref="client" />
     </bean>
注意id的名称必须是:elasticsearchTemplate,否则elasticsearch的Dao层找不到

3、编写 DAO接口继承 ElasticsearchRepository 接口

//和spring-data-jpa类似,封装了众多对索引库进行操作的方法,使用方法也与jpa类似

public interface ArticleRepository extends ElasticsearchRepository<Article, Integer> {}

4、实体类的配置实例

基于 spring data elasticsearch 注解创建索引和映射

@Document(indexName = "blog", type = "article")
public class Article {
    @Id
    @Field(index = FieldIndex.not_analyzed, store = true, type = FieldType.Integer)
    private Integer id;
    @Field(index = FieldIndex.analyzed, analyzer = "ik", store = true, searchAnalyzer = "ik", type = FieldType.String)
    private String title;
    @Field(index = FieldIndex.analyzed, analyzer = "ik", store = true, searchAnalyzer = "ik", type = FieldType.String)
    private String content;
}

@Document 文档对象 (索引信息、文档类型 )
@Id 文档主键 唯一标识(需要和hibernate的主键id区分开来,二者是不同的存在)
@Field 每个文档的字段配置(类型、是否分词、是否存储、分词器 )

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值