前言
本文档及关联项目用于ElasticSearch的JavaAPI的学习。
本节将完成环境配置,索引创建
注:Elasticsearch 是一个开源、分布式、基于 Lucene 的搜索引擎和分析引擎。 Elasticsearch 支持:
- 全文搜索,强大的全文搜索能力,能够对文本内容进行快速、准确的搜索,并支持各种高级搜索语法和查询选项。
- 分布式架构,可以轻松地在多台服务器上扩展和部署,以处理大规模的数据和高并发的查询请求。
- 实时分析,支持近乎实时的数据索引和搜索,使得数据能够快速地被检索和分析。
- 弹性伸缩,具有良好的弹性伸缩性,可以通过增加或减少节点来调整集群的容量和性能。
- 高可用性,通过分片和副本机制,Elasticsearch 可以保证数据的高可用性和容错性。即使部分节点出现故障,整个集群仍能继续提供服务。
- RESTful API,提供了丰富的 RESTful API,使得与各种编程语言和客户端的集成变得简单和方便。
- 聚合和分析,强大的聚合(Aggregation)能力,可以对数据进行复杂的统计分析和报表生成。
- 多租户和安全性,支持多租户模式,可以为不同的用户或应用程序分配独立的索引和权限,同时,它也提供了多种安全措施,如认证、授权和加密,以保护数据的安全。
- 易于管理,提供了友好的管理界面和工具,如 Kibana 和 Elastic Stack,使得集群的监控、管理和调试变得更加直观和便捷。
- 广泛的应用场景, 被广泛应用于日志分析、监控告警、电子商务搜索、推荐系统、网络安全、物联网数据分析等多个领域。
环境
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-learnin
依赖配置
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文件夹:
创建测试客户端
创建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
运行成功,返回true,这时在回到POSTMAN中调用刚刚的 GET 请求,可以看到:文章来源:https://www.toymoban.com/news/detail-404930.html
成功创建users索引。文章来源地址https://www.toymoban.com/news/detail-404930.html
到了这里,关于【ES】JavaAPI学习-01 环境配置 索引创建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!