全文索引擎 · Elasticsearch与Spring项目整合流程

什么是ElasticSearch?

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    应用场景:

 (查询的数据量非常庞大,涉及到的查询条件有 模糊查询)

   在一个系统中,一个查询条件去多张表中查询数据。用于全文搜索引擎

    基本安装与使用:

下载地址:Elasticsearch官方下载地址

电脑环境已经具备JAVA环境下解压下载的软件进入/bin目录下双击elasticsearch.bat开始运行

JAVA环境安装这里不做详解,可上百度搜索安装

全文索引擎 · Elasticsearch与Spring项目整合流程_第1张图片

目录详解:

bin存放elasticsearch运行命令

config存放配置文件

lib存放elasticsearch运行依赖jar

modules存放elasticsearch模块

plugins存放插件

运行成功:

访问地址:http://127.0.0.1:9200

全文索引擎 · Elasticsearch与Spring项目整合流程_第2张图片

基本插件安装(head可视化界面):

**以head插件为例:

1、切换到elasticsearch 的运行命令目录,如:D:\elasticsearch-2.4.0\bin,执行如下命令:

  plugin.bat install mobz/elasticsearch-head

2、访问http://localhost:9200/_plugin/head/

全文索引擎 · Elasticsearch与Spring项目整合流程_第3张图片

*****项目整合思路*****

    框架整合:

    spring data elasticsearch
    

1、导入pom坐标

     elasticsearch     
    spring-data-elasticsearch

 

   org.elasticsearch
   elasticsearch
   2.4.0


   org.springframework.data
   spring-data-elasticsearch
   2.0.4.RELEASE

   

2、配置web.xml

    这里与Spring整合不需要配置项目启动时的web.xml


3、配置applicationContext-elasticsearch.xml

    elasticsearch的使用需要启动它的 服务(启动之前已经安装好的服务器)

   
    1)配置elasticsearch的连接
    

id="client" cluster-nodes="127.0.0.1:9300"/>
    2)配置spring data elasticsearch的模板
 
    
id="elasticsearchTemplate" 
   class="org.springframework.data.elasticsearch.core.ElasticsearchTemplate">
   name="client" ref="client" />
注意:模板的ID的名称不能随便写,只能为上面的ID名称    3)配置 dao的扫描,这里配置你需要的扫描的包名    
4、测试项目的启动
    1)启动elasticsearch的服务器
    2)启动工程
    不报错,则表示框架整合基本成功!
   

*****spring data elasticsearch的使用*****

domain实体类(注解是重点)
    定义在实体类class上的
	@Document(indexName = "blog3", type = "article")
	@Document //定义文档属性
	// indexName 索引库的名称
	// type 文档类型

       
    定义在实体类属性上的
  
  @id    org.springframework.data.annotation.Id
  @Field(index = FieldIndex.analyzed, analyzer = "ik", store = true, searchAnalyzer = "ik", type = FieldType.String)
        

            index : 是否建索引

            FieldIndex.analyzed 建立索引

            FieldIndex.not_analyzed 不建立索引

            FieldIndex.no 不能被作为条件查询

        analyzer 指定的分词器

        store 是否存储

        searchAnalyzer 搜索条件指定的分词器

        type 字段数据类型

        (注意这里如果配置了分词器需要另外在服务器安装分词器插件,我这里使用了IK分词器)

全文索引擎 · Elasticsearch与Spring项目整合流程_第4张图片

全文索引擎 · Elasticsearch与Spring项目整合流程_第5张图片

dao层需要继承:
  className  extends ElasticsearchRepository

    最后一点和项目整合时最后启动项目,一定要把单独的配置文件导入到主要的配置文件里面。

否则无法加载

applicationContext.xml


resource="applicationContext-elasticsearch.xml"/>

Elasticsearch.xml配置文件:

xml version="1.0" encoding="UTF-8"?>
xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
   xmlns:elasticsearch="http://www.springframework.org/schema/data/elasticsearch"
   xsi:schemaLocation="
      http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans.xsd
      http://www.springframework.org/schema/data/elasticsearch
      http://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch-1.0.xsd">
   
   
   base-package="cn.guyue.main.index" />
   
   
   id="client" cluster-nodes="127.0.0.1:9300"/>
   
   
   id="elasticsearchTemplate" 
      class="org.springframework.data.elasticsearch.core.ElasticsearchTemplate">
      name="client" ref="client" />
   

欢迎各位大牛提出问题

   

    
    
    
    
    
    









你可能感兴趣的:(Elasticsearch)