/ElasticsearchDemo

Maven+ SpringBoot + JDK 1.8.0_151 + ElasticSearch-2.3.3 + ElasticSearch-analysis-ik-1.9.3 + typeahead.js输入框输入信息后,自动提示补全控件 + jqPaginator.js分页控件+ Thymeleaf 页面模板显示

Primary LanguageJavaScript

ElasticsearchDemo

DEMO使用技术点:Maven+ SpringBoot + JDK 1.8.0_151 + ElasticSearch-2.3.3 + ElasticSearch-analysis-ik-1.9.3 + typeahead.js输入框输入信息后,自动提示补全控件 + jqPaginator.js分页控件+ Thymeleaf 页面模板显示

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创建是非常困难的。我们希望搜索解决方案要运行速度快,我们希望能有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP来索引数据,我们希望我们的搜索服务器始终可用,我们希望能够从一台开始并扩展到数百台, 我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。因此我们利用Elasticsearch来解决所有这些问题以及可能出现的更多其它问题。

ElasticSearch 从2.x 至5.x api改动较大,本文仅以elasticsearch-2.3.3作为Demo,其他version操作详细查看官网 https://www.elastic.co/products/elasticsearch

一. Demo 技术列表:

01.SpringBoot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置,详细请看 http://projects.spring.io/spring-boot/

02.ElasticSearch-2.3.3 ElasticSearch是一个基于Lucene的搜索服务器 详细看官网 https://www.elastic.co/products/elasticsearch

03.ElasticSearch-analysis-ik-1.9.3 是ElasticSearch的一个分词插件,elasticsearch-analysis-ik 是一款中文的分词插件,支持自定义词库,详细请看 https://github.com/medcl/elasticsearch-analysis-ik

04.Typeahead.js 输入框输入信息后,自动提示补全控件,详细请看 https://github.com/twitter/typeahead.js/

05.jqPaginator.js分页控件,详细请看作者网址:http://jqpaginator.keenwon.com/

06.Thymeleaf 页面模板显示,目前Spring官方已经不推荐使用JSP来开发WEB了,推荐使用Thymeleaf作为前端页面 详细请看官网:http://www.thymeleaf.org/;

Pom.xml

	<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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>elasticsearch</groupId>
	<artifactId>ElasticsearchDemo</artifactId>
	<packaging>war</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<name>ElasticsearchDemo Maven Webapp</name>
	<url>http://maven.apache.org</url>
	   <!-- spring boot 基本环境 -->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.3.1.RELEASE</version>
	</parent>
	<dependencies>
		<!--es2.3.3  -->
		<dependency>
			<groupId>org.elasticsearch</groupId>
			<artifactId>elasticsearch</artifactId>
			<version>2.3.3</version>
		</dependency>

		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.6.6</version>
		</dependency>
     		<!--springboot  -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.1.1</version>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<optional>true</optional>
		</dependency>
		<!--MySql  -->
			
		 <dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>
		<!--thymeleaf  -->
		<dependency>  
		 <groupId>org.springframework.boot</groupId>  
		 <artifactId>spring-boot-starter-thymeleaf</artifactId>  
		</dependency> 
		
	</dependencies>
	<build>
		<finalName>ElasticsearchDemo</finalName>
	</build>
</project>

二、DEMO DOC

1.本文以window elasticsearch-2.3.3 version为例, 下载地址 https://www.elastic.co/downloads/past-releases 选择相应version 下载.zip ;

2.解压.zip , 目录elasticsearch-2.3.3\bin 双击 elasticsearch.bat 启动elasticsearch;

3.安装 ik 分词 
   01.ik下载地址:https://github.com/medcl/elasticsearch-analysis-ik
   
   02.在github 上有相应的ik--> elasticsearch 版本对应表,请按照对应表下载对应 version 的ik.zip; 本文使用elasticsearch-2.3.3 对应ik版本为 elasticsearch-analysis-ik-1.9.3。
   
   03.下载 elasticsearch-analysis-ik-1.9.3.zip ,解压后使用dos 命令进入到解压文件夹的根目录,使用 mvn clean package  命令对ik 进行打包。
	  命令执行完毕创建elasticsearch-analysis-ik-1.9.3-sources.jar,elasticsearch-analysis-ik-1.9.3.jar 以及一些文件在target文件夹下表示打包完毕。
	  
   04.在elasticsearch-2.3.3中手动创建目录plugins\analysis-ik ,将 elasticsearch-analysis-ik-1.9.3\target\releases\elasticsearch-analysis-ik-1.9.3 目录下的plugin-descriptor.properties及整个文件夹config, 和elasticsearch-analysis-ik-1.9.3.jar 拷贝到该目录下。
	 
   05.将 elasticsearch-analysis-ik-1.9.3\target\releases\elasticsearch-analysis-ik-1.9.3 所有.jar 拷贝到 elasticsearch-2.3.3 根目录lib下。
   
   06.在elasticsearch-2.3.3的配置文件config/elasticsearch.yml中最后增加ik的配置
	   index:  
	  analysis:                     
		analyzer:        
		  ik:  
			  alias: [ik_analyzer]  
			  type: org.elasticsearch.index.analysis.IkAnalyzerProvider  
		  ik_max_word:  
			  type: ik  
			  use_smart: false  
		  ik_smart:  
			  type: ik  
			  use_smart: true 
	   
	   或者
	   
	   index.analysis.analyzer.ik.type : “ik”  
	   
	07.重启elasticsearch-2.3.3,正常启动表示配置成功。

4.使用maven 导入demo

5.执行package com.net.Application.java 类启动SpringBoot, 启动会执行 package com.net.InitESData.java 初始化测试数据

6.成功启动完毕后,在浏览器上输入 http://localhost:8080/index 便可进行预览测试。

项目效果图:

Image text

备注:任何问题在github提交Issues,有时间会及时修复提交代码。

本demo 参考文章 http://blog.csdn.net/hunanlzg/article/details/51658370 感谢!