一、ElasticSearch简介
ElasticSearch是一个开源的分布式搜索和分析引擎,基于Lucene搜索引擎库,提供了实时分析、可扩展性和复杂搜索功能。ElasticSearch能够处理各种类型的数据,包括结构化、半结构化和非结构化数据,并能够以极快的速度进行搜索、聚合和分析。ElasticSearch的数据模型是基于文档的,它将每个文档看作是一个JSON对象,并将其存储在索引中。
ElasticSearch使用RESTful API作为主要的接口方式,支持多种语言的客户端库,如Java、Python、Ruby等。ElasticSearch还提供了强大的聚合功能,可用于数据分析、数据挖掘、业务监控等场景。
二、ElasticSearch的安装
ElasticSearch的安装有多种方式,这里介绍使用官方提供的安装包方式。
下载安装包
从ElasticSearch的官方网站下载最新版本的安装包,下载地址为:https://www.elastic.co/downloads/elasticsearch。
解压安装包
将下载的安装包解压到指定的目录下,例如:
tar -zxvf elasticsearch-7.12.0-linux-x86_64.tar.gz -C /usr/local/
配置环境变量
将ElasticSearch的可执行文件路径添加到系统环境变量中,例如:
export PATH=$PATH:/usr/local/elasticsearch-7.12.0/bin
启动ElasticSearch
在终端中执行以下命令启动ElasticSearch:
elasticsearch
启动后,可以使用curl命令测试ElasticSearch是否正常运行:
curl http://localhost:9200/
如果返回以下结果,则说明ElasticSearch已经正常启动:
{
"name" : "hostname",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "xxxxx",
"version" : {
"number" : "7.12.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "xxxxx",
"build_date" : "2021-03-18T06:17:15.410153305Z",
"build_snapshot" : false,
"lucene_version" : "8.8.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
三、使用Java API操作ElasticSearch
Java API是操作ElasticSearch的主要方式之一,使用Java API可以更加方便地进行索引、查询、删除等操作。下面介绍如何使用Java API创建索引和添加文档。
添加依赖
在使用Java API之前,需要添加ElasticSearch的Java客户端库依赖。可以在使用Java API之前,需要添加ElasticSearch的Java客户端库依赖。可以使用Maven或Gradle等构建工具添加依赖,例如:
<!-- Maven依赖 -->
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.12.0</version>
</dependency>
创建连接
在使用Java API之前,需要创建连接到ElasticSearch集群的客户端对象。可以使用RestHighLevelClient类创建客户端对象,例如:
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(new HttpHost("localhost", 9200, "http")));
创建索引
创建索引的操作需要使用IndexRequest对象和IndexResponse对象。IndexRequest对象表示要添加的文档,可以使用JSON字符串或Map对象创建。IndexResponse对象表示添加文档的结果。
// 创建JSON字符串表示的文档
String json = "{\"name\":\"Tom\",\"age\":20}";
// 创建IndexRequest对象
IndexRequest request = new IndexRequest("my_index")
.id("1")
.source(json, XContentType.JSON);
// 执行添加文档操作
IndexResponse response = client.index(request, RequestOptions.DEFAULT);
// 输出添加文档的结果
System.out.println(response.status());
以上代码创建了一个名为my_index的索引,并添加了一个ID为1、内容为{“name”:”Tom”,”age”:20}的文档。执行结果为CREATED,表示添加文档成功。
关闭连接
使用完Java API之后,需要关闭连接。可以使用RestHighLevelClient的close()方法关闭连接。
// 关闭连接
client.close();
小结
本文介绍了ElasticSearch的基本概念、安装方式和Java API的使用方法。ElasticSearch是一个功能强大、易于使用的搜索和分析引擎,可以帮助我们快速地处理大量数据,并从中挖掘有价值的信息。使用Java API可以更加方便地进行索引、查询、删除等操作,帮助我们更好地利用ElasticSearch的功能。