Elasticsearch 是一个开源的分布式搜索引擎,它能够快速地存储、搜索和分析大量的文本数据。它基于 Apache Lucene 构建,广泛应用于日志分析、全文搜索、推荐系统等场景。本文将详细介绍如何在 Java 项目中集成 Elasticsearch,包括如何配置、索引文档、查询数据、以及与 Elasticsearch 进行交互的常见操作。
1. 环境准备
在开始使用 Elasticsearch 之前,确保你已经安装了以下工具:
- Elasticsearch:你可以通过 官方文档 下载并安装 Elasticsearch。
- JDK:确保你已安装 Java 8 或更高版本。可以通过
java -version
命令查看 Java 版本。 - Maven:Maven 是 Java 的构建工具,你可以通过 官网 安装它。
1.1 启动 Elasticsearch
-
下载并解压 Elasticsearch。
-
在解压目录中打开终端,运行以下命令启动 Elasticsearch:
bin/elasticsearch
默认情况下,Elasticsearch 会在 localhost:9200
上启动。如果启动成功,你应该能够通过浏览器或 curl 命令访问到它:
curl -X GET "localhost:9200/"
你会看到类似如下的响应:
{
"name" : "your-node-name",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "some-uuid",
"version" : {
"number" : "7.x.x",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "somehash",
"build_date" : "2020-10-01T12:34:56.789Z",
"build_snapshot" : false,
"lucene_version" : "8.x.x",
"minimum_wire_compatibility_version" : "7.x.x",
"minimum_index_compatibility_version" : "7.x.x"
},
"tagline" : "You Know, for Search"
}
-
这样,Elasticsearch 就已启动并运行。
2. 添加依赖
Elasticsearch 提供了多个官方客户端,常用的客户端有 RestHighLevelClient 和 Elasticsearch Java Client。在这篇文章中,我们将使用 RestHighLevelClient
来进行操作。
首先,确保在 Maven 的 pom.xml
文件中添加以下依赖:
<dependencies>
<!-- Elasticsearch Rest High Level Client -->
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.10.0</version> <!-- 根据你本地的版本选择合适的版本 -->
</dependency>
<!-- Elasticsearch Core -->
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.10.0</version>
</dependency>
<!-- Jackson用于JSON处理 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson