ES及其相关软件的环境配置
本文包括JDK-11、Maven-3.5.3、ES(Elasticsearch)-7.6.2、Node-12.16.3、ES-Head、Kibana-7.6.2、ik-7.6.2、IntelliJ IDEA Community Edition 2018.3.16、Spring Assistant-0.12.0、Spring Boot-2.3.1软件环境的配置,这些软件是ES的开发过程中需要的。
注意:ES、Kibana和ik的版本必须一致,不然可能会出未知的问题。IntelliJ IDEA的版本要与Spring Assistant版本发布的时间相接近,Maven版本的发布时间尽量低于或者稍高于IntelliJ IDEA版本的发布时间。如果安装的过程中,出现问题,如果排除了所有手误或代码错误问题,还是安装不成功,那可能就是版本不兼容问题。如果时间快的话2个小时,即可装完,如果慢的话可能要1天的时间。
1 JDK-11安装配置
JDK是ES开发的必须环境,ES要求JDK最低版本是1.8,本文选择了JDK-11作为ES的开发环境,JDK-11不区分jvm,jre和jdk,因此直接安装,然后将JDK-11的安装路径添加到环境变量中即可。
1.1 JDK-11下载地址
官网下载地址:
https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
官网地址需要注册后才能下载,我建议使用别人在百度云盘上共享的JDK-11即可。
1.2 安装配置
在用户变量中添加JDK的环境变量如下(如果在用户环境变量中,配置失败可以在系统环境变量中配置也可):
变量:JAVA_HOME;
值:D:\java_11
将JDK的bin目录添加到PATH中,添加内容为(注意后面的bin):%JAVA_HOME%\bin;
2 Maven-3.5.3安装配置
Maven是项目管理和构建的工具,它可以解决jar包冲突、编译项目、一次性执行所以单元测试和项目打包等。
2.1 Maven下载地址
下面是Maven-3的下载地址:
http://archive.apache.org/dist/maven/maven-3/
本文Maven-3.5.3的下载地址:”
http://archive.apache.org/dist/maven/maven-3/3.5.3/binaries/
2.2 安装配置
Maven下载完成后,直接解压到相应的目录,然后配置环境变量即可。
在用户变量中添加Maven的环境变量如下(如果在用户环境变量中,配置失败可以在系统环境变量中配置也可):
变量:MAVEN_HOME;
值:D:\maven-3.5.3
将JDK的bin目录添加到PATH中,添加内容为:% MAVEN_HOME %\bin;
2.3 配置Maven仓库
修改settings.xml文件,配置中央仓库、本地仓库。
(1)设置本地仓库
在settings.xml中找到localRepository标签,设置本地仓库,如下:
<localRepository>D:/y_projects/mvn_repository</localRepository>
(2)设置中央仓库
在settings.xml中找到mirrors标签,在mirrors标签中添加如下内容(使用阿里云的下载会比较快):
<!-- A li cloud -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
(3)设置JDK
在settings.xml中找到profiles标签,在profiles标签中添加如下内容,更改JDK版本:
<profile>
<id>jdk-11</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>11</jdk>
</activation>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<maven.compiler.compilerVersion>11</maven.compiler.compilerVersion>
</properties>
</profile>
(4)初始化Maven本地仓库
下载安装maven-help-plugin插件:mvn help:system
时间会稍微长一点,如果上述出现错误,说明没有配置成功。
3 ES(Elasticsearch)-7.6.2安装
3.1 ES下载地址
下面是ES的历史版本下载地址:
https://www.elastic.co/cn/downloads/past-releases#elasticsearch
下面是ES-7.6.2的下载地址:
https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-6-2
3.2 ES安装
ES安装很简单,只需要把文件下载下来,解压即可。
3.3 ES运行
双击elasticsearch.bat即可运行。
如果dos没有报错和退出,在浏览器中输入地址:http://localhost:9200/,如果出现下面的版本信息说明ES安装成功。
4 Node-12.16.3安装
由于ES-Head的运行需要Node.js,所以在安装ES-Head前需要安装Node.js。
4.1 Node.js的下载地址
Node.js历史版本下载地址
https://nodejs.org/en/download/releases/
4.2 Node.js的安装
在系统变量中添加Node.js的环境变量如下:
查看node的版本和npm的版本如下:
5 ES-Head安装配置
5.1 ES-Head下载地址
在gitHub上下载,或者用git命令克隆也行。
https://github.com/mobz/elasticsearch-head
5.2 ES-Head安装
ES-Head安装与ES的安装一样,解压即可。
ES-Head解压后,使用Node.js安装ES-Head的依赖项,具体的依赖项请参考ES-Head目录下的package.json的文件。注意必须进入es-head的目录下进行安装依赖。
依赖项安装方法:npm install
启动ES-Head:npm start
5.3 跨域问题
在ES的安装目录下找到elasticsearch.yml文件。
在elasticsearch.yml文件的末尾添加如下内容:
http.cors.enabled: true
http.cors.allow-origin: "*"
重启ES即可访问成功
6 Kibana-7.6.2
Kibana的安装方法和ES-Head的方法一样。
6.1 Kibana的下载地址
历史版本地址:
https://www.elastic.co/cn/downloads/past-releases#kibana
下面是Kibana-7.6.2的下载地址:
https://www.elastic.co/cn/downloads/past-releases/kibana-7-6-2
6.2 Kibana安装
将下载的Kibana解压到相应的目录即可:
启动Kibana,双击kibana.bat即可运行。
在浏览器中输入:http://localhost:5601
7 ik-7.6.2安装
IK是中文分词器,可以用于中文分词。
7.1 ik下载地址
Ik的历史版本下载地址
https://github.com/medcl/elasticsearch-analysis-ik/releases
ik-7.6.2下载地址
https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.6.2
7.2 ik安装
将ik插件解压到ES的插件目录下即可:
重启ES可以看到ik插件加载完成。
Ik分词器在Kibana中的使用:
8 IntelliJ IDEA Community Edition 2018.3.16安装
由于Intellij IDEA专业版需要收费,因此建议使用社区版。由于社区版需要自己安装插件,但有些插件的最新版本与最新的IDEA有兼容问题,所以本文选择了2018版本。
8.1 IntelliJ IDEA下载地址
历史版本下载地址如下:
https://www.jetbrains.com/idea/download/other.html
找到IntelliJ IDEA-2018.3.16版本下载下来即可。
8.2 IntelliJ IDEA安装
IDEA的安装方法与Node的安装方法类似,按照默认的安装方法即可。
9 Spring Assistant-0.12.0安装
在IDEA中使用Spring Boot,需要添加Spring Assistant插架。在Intellij IDEA中在线安装速度很慢,有时可能找不到插件,最好的方法就是离线安装插件。
9.1 Spring Assistant下载地址
历史版本下载地址
https://plugins.jetbrains.com/plugin/10229-spring-assistant/versions
下载Spring Assistant-0.12.0即可。
9.2 Spring Assistant安装
只需要将Spring Assistant插件解压到IntelliJ IDEA的插件目录下即可。
10 Intellij IDEA中配置开发环境
在Intellij IDEA中配置Maven、Spring Boot和Elasticsearch环境和版本。
10.1 配置默认的JDK-11
10.2 配置Maven
注意一定要配置Java的安装路径,保证“Importing”和“Runner”的Java运行环境一直。
10.3 配置Spring Assistant
10.4 建立Spring boot工程
建立Spring Boot工程需要连接网络。
配置完成后,点击next,进入下一步配置工程名和工程路径。最后,点击“finish”,等待工程初始化即可,初始化过程比较长。
10.5 配置Elasticsearch版本
修改Pom.xml文件
启动Springboot
11 构建ES简单工程
11.1 构建ControlHello
import org.apache.http.HttpHost;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.client.indices.CreateIndexRequest;
import org.elasticsearch.client.indices.CreateIndexResponse;
import org.elasticsearch.client.indices.GetIndexRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import java.io.IOException;
@Controller
public class ControlHello {
@GetMapping({"/", "/index"})
public String hello() throws IOException {
// 构建环境
RestClientBuilder builder = RestClient.builder(
new HttpHost("127.0.0.1", 9200, "http")
);
// 创建高级客户端
RestHighLevelClient client = new RestHighLevelClient(builder);
// 判断索引是否存在
GetIndexRequest getIndexRequest = new GetIndexRequest("hello_index");
boolean isExist = client.indices().exists(getIndexRequest, RequestOptions.DEFAULT);
if(isExist){
System.out.println("索引已经存在!");
}else {
CreateIndexRequest indexRequest = new CreateIndexRequest("hello_index");
CreateIndexResponse indexResponse = client.indices().create(indexRequest, RequestOptions.DEFAULT);
System.out.println(indexRequest.index());
System.out.println("索引创建成功");
}
return "index";
}
}
11.2 构建HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
Hello Elasticsearch !
</body>
</html>
11.3 启动ES、ES-Head和Spring boot
注意一定要启动ES,如果要在ES-Head看数据,也需要启动ES-Head。
在浏览器中输入:http://localhost:8080/