前言
本文档及关联项目用于ElasticSearch的JavaAPI的学习。
环境
JDK8
IntelliJ IDEA 2021.2.3 (Community Edition)
Postman-win64-8.12.4
elasticsearch-7.15.0-windows-x86_64
实现
启动ES和POSTMAN
找到elasticsearch的安装路径,打开bin文件夹
打开elasticsearch.bat 文件
稍等片刻,看到
则其启动成功。
可以测试一下 http://127.0.0.1:9200/ 是否能打开。
然后启动POSTMAN,我用的是POSTMAN客户端:
项目创建
创建一个新项目
取名为:ElasticSearch-JavaAPI-learning
依赖配置
pom.xml
<?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">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>ElasticSearch-JavaAPI-learning</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.8.0</version>
</dependency>
<!-- elasticsearch 的客户端 -->
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.8.0</version>
</dependency>
<!-- elasticsearch 依赖 2.x 的 log4j -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.9</version>
</dependency>
<!-- junit 单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
</project>
配置好之后记得更新maven
es
在src.main.java下创建com.zwy.es文件夹:
创建测试客户端
ESTest_Client.java
package com.zwy.es;
import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import sun.rmi.transport.TransportConstants;
import java.io.IOException;
public class ESTest_Client {
public static void main(String[] args) throws IOException {
// 创建ES客户端
RestHighLevelClient esClient = new RestHighLevelClient(
RestClient.builder(new HttpHost("localhost", 9200, "http"))
);
// 关闭ES客户端
esClient.close();
}
}
ESTest_Index_Create.java
package com.zwy.es;
import org.apache.http.HttpHost;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.client.indices.CreateIndexRequest;
import org.elasticsearch.client.indices.CreateIndexResponse;
import java.io.IOException;
public class ESTest_Index_Create {
public static void main(String[] args) throws IOException {
//
RestHighLevelClient esClient = new RestHighLevelClient(
RestClient.builder(new HttpHost("localhost", 9200, "http"))
);
// 创建索引
CreateIndexRequest request = new CreateIndexRequest("users"); // 创建请求对象
CreateIndexResponse createIndexResponse = esClient.indices().create(request, RequestOptions.DEFAULT); // 返回响应
// 响应状态
boolean acknowledged = createIndexResponse.isAcknowledged();
System.out.println("索引操作 : " + acknowledged);
// 关闭ES客户端
esClient.close();
}
}
文件结构
项目文件结构如下:
运行
先运行ESTest_Client.java
没有报错。
这时打开postman,创建一个请求的collection:
我把它命名为ES基础操作。
然后创建一个 GET 请求(request)如下:
http://127.0.0.1:9200/_cat/indices?v
点击 Send
搜索索引,应该没有出现 users的索引,如果有,可以自己修改ESTest_Index_Create.java的CreateIndexRequest中的入参。
则继续运行ESTest_Index_Create.java
运行成功,返回true,这时在回到POSTMAN中调用刚刚的 GET 请求,可以看到:
成功创建users索引。