本文档及关联项目用于ElasticSearch的JavaAPI的学习。
本节将完成环境配置,索引创建
注:Elasticsearch 是一个开源、分布式、基于 Lucene 的搜索引擎和分析引擎。 Elasticsearch 支持:
JDK8
IntelliJ IDEA 2021.2.3 (Community Edition)
Postman-win64-8.12.4
elasticsearch-7.15.0-windows-x86_64
找到elasticsearch的安装路径,打开bin文件夹
打开elasticsearch.bat 文件
稍等片刻,看到
可以测试一下 http://127.0.0.1:9200/ 是否能打开。
然后启动POSTMAN,我用的是POSTMAN客户端:
我们创建一个新项目
取名为:ElasticSearch-JavaAPI-learnin
pom.xml
4.0.0
org.example
ElasticSearch-JavaAPI-learning
1.0-SNAPSHOT
8
8
org.elasticsearch
elasticsearch
7.8.0
org.elasticsearch.client
elasticsearch-rest-high-level-client
7.8.0
org.apache.logging.log4j
log4j-api
2.8.2
org.apache.logging.log4j
log4j-core
2.8.2
com.fasterxml.jackson.core
jackson-databind
2.9.9
junit
junit
4.12
配置好之后记得更新maven
在src.main.java下创建com.zwy.es文件夹:
创建测试客户端
创建RestHighLevelClient对象,这是ES的Java客户端,与ES服务器进行交互。
RestHighLevelClient esClient = new RestHighLevelClient(
RestClient.builder(new HttpHost("localhost", 9200, "http"))
);
我们使用了RestClient.builder()方法创建了一个RestClient实例,并传入了一个HttpHost对象。HttpHost对象包含了Elasticsearch服务器的地址、端口和协议,服务器运行在本地的9200端口,使用HTTP协议。
创建完RestHighLevelClient对象后,可以使用它来进行各种Elasticsearch操作,如索引文档、搜索数据、更新文档等。但是,这段代码中没有执行任何具体的操作。
最后,通过调用esClient.close()方法关闭Elasticsearch客户端,释放资源。
esClient.close();
我们有: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