Windows安装Elasticsearch及Spring Boot整合ES教程
目录
- 一、在Windows上安装Elasticsearch
- 1. 下载Elasticsearch
- 2. 配置Elasticsearch
- 3. 启动Elasticsearch
- 4. 安装Head插件(可选)
- 二、Spring Boot整合Elasticsearch
- 1. 创建Spring Boot项目并添加依赖
- 2. 配置Spring Boot连接Elasticsearch
- 3. 创建实体类和Repository接口
- 4. 测试代码
- 5. 启动Spring Boot项目
- 6. 注意事项
- 三、总结
一、在Windows上安装Elasticsearch
Elasticsearch是一个基于Lucene的开源搜索引擎,主要用于海量数据的实时搜索和分析。在Windows系统上安装Elasticsearch的过程相对简单。以下是具体步骤。
1. 下载Elasticsearch
- 访问Elasticsearch官方页面。
- 选择你需要的版本(建议使用最新版,以获取最新的特性和修复),下载对应的zip包。
- 将下载的压缩包解压到目标安装目录,例如
D:\elasticsearch
。
2. 配置Elasticsearch
- 打开
config
文件夹中的elasticsearch.yml
配置文件,进行如下修改:- 修改集群名称(可选):找到
cluster.name
,可以将其修改为自定义名称。 - 修改节点名称(可选):找到
node.name
,定义当前节点的名称。 - 设置数据存储路径:找到
path.data
,将其设置为所需的数据存储路径,例如:D:\elasticsearch\data
。 - 设置日志存储路径:找到
path.logs
,将其设置为所需的日志存储路径,例如:D:\elasticsearch\logs
。 - 配置网络绑定:找到
network.host
,将其设置为0.0.0.0
(允许所有IP地址访问),或者localhost
(仅本机访问)。 - 配置端口号(默认是9200):找到
http.port
,可根据需求更改。
- 修改集群名称(可选):找到
- 保存配置文件并关闭。
3. 启动Elasticsearch
- 进入Elasticsearch根目录,打开命令行窗口。
- 运行
bin\elasticsearch.bat
启动Elasticsearch。 - 启动成功后,打开浏览器访问
http://localhost:9200
,应该看到如下JSON信息表示启动成功:{ "name" : "node-1", "cluster_name" : "elasticsearch", "cluster_uuid" : "xyz12345", "version" : { "number" : "8.x.x", ... }, "tagline" : "You Know, for Search" }
4. 安装Head插件(可选)
为了更方便地管理和查看数据,可以安装elasticsearch-head
插件。
- 打开浏览器访问Head插件GitHub页面。
- 按照说明运行插件,并通过浏览器访问
http://localhost:9100
。
二、Spring Boot整合Elasticsearch
完成Elasticsearch在Windows的安装后,接下来演示如何在Spring Boot项目中集成Elasticsearch。
1. 创建Spring Boot项目并添加依赖
- 在IDEA中创建一个Spring Boot项目,并添加以下依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
</dependencies>
2. 配置Spring Boot连接Elasticsearch
在application.yml
或application.properties
文件中添加如下配置:
spring:
elasticsearch:
uris: http://localhost:9200 # 设置Elasticsearch地址
3. 创建实体类和Repository接口
假设我们有一个简单的商品数据,需要将其存储到Elasticsearch中。
-
创建实体类
Product
:import org.springframework.data.annotation.Id; import org.springframework.data.elasticsearch.annotations.Document; @Document(indexName = "products") public class Product { @Id private String id; private String name; private Double price; private String description; // getters and setters }
-
创建Repository接口
ProductRepository
:import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; public interface ProductRepository extends ElasticsearchRepository<Product, String> { // 自定义查询方法可以在这里定义,例如根据名称查找 List<Product> findByName(String name); }
4. 测试代码
编写测试类,插入和查询数据:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
@Component
public class ElasticsearchTest implements CommandLineRunner {
@Autowired
private ProductRepository productRepository;
@Override
public void run(String... args) throws Exception {
// 插入数据
Product product = new Product();
product.setId("1");
product.setName("Laptop");
product.setPrice(999.99);
product.setDescription("High-performance laptop");
productRepository.save(product);
// 查询数据
List<Product> products = productRepository.findByName("Laptop");
products.forEach(p -> System.out.println(p.toString()));
}
}
5. 启动Spring Boot项目
- 启动项目后,Spring Boot会自动连接到Elasticsearch。
- 在
ElasticsearchTest
中,我们插入了一条商品数据并通过findByName
查询输出。
6. 注意事项
- Elasticsearch版本要与Spring Data Elasticsearch版本兼容,不兼容可能导致连接失败。
- 在生产环境中,需设置更严格的安全配置,例如使用认证、HTTPS等。
三、总结
通过以上步骤,我们实现了在Windows系统上安装Elasticsearch,并在Spring Boot中完成了与Elasticsearch的整合。