Windows安装Elasticsearch及Spring Boot整合ES教程

目录

      • 一、在Windows上安装Elasticsearch
        • [1. 下载Elasticsearch](#1. 下载Elasticsearch)
        • [2. 配置Elasticsearch](#2. 配置Elasticsearch)
        • [3. 启动Elasticsearch](#3. 启动Elasticsearch)
        • [4. 安装Head插件(可选)](#4. 安装Head插件(可选))
      • [二、Spring Boot整合Elasticsearch](#二、Spring Boot整合Elasticsearch)
        • [1. 创建Spring Boot项目并添加依赖](#1. 创建Spring Boot项目并添加依赖)
        • [2. 配置Spring Boot连接Elasticsearch](#2. 配置Spring Boot连接Elasticsearch)
        • [3. 创建实体类和Repository接口](#3. 创建实体类和Repository接口)
        • [4. 测试代码](#4. 测试代码)
        • [5. 启动Spring Boot项目](#5. 启动Spring Boot项目)
        • [6. 注意事项](#6. 注意事项)
      • 三、总结

一、在Windows上安装Elasticsearch

Elasticsearch是一个基于Lucene的开源搜索引擎,主要用于海量数据的实时搜索和分析。在Windows系统上安装Elasticsearch的过程相对简单。以下是具体步骤。

1. 下载Elasticsearch
  1. 访问Elasticsearch官方页面
  2. 选择你需要的版本(建议使用最新版,以获取最新的特性和修复),下载对应的zip包。
  3. 将下载的压缩包解压到目标安装目录,例如D:\elasticsearch
2. 配置Elasticsearch
  1. 打开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,可根据需求更改。
  2. 保存配置文件并关闭。
3. 启动Elasticsearch
  1. 进入Elasticsearch根目录,打开命令行窗口。

  2. 运行bin\elasticsearch.bat启动Elasticsearch。

  3. 启动成功后,打开浏览器访问http://localhost:9200,应该看到如下JSON信息表示启动成功:

    json 复制代码
    {
      "name" : "node-1",
      "cluster_name" : "elasticsearch",
      "cluster_uuid" : "xyz12345",
      "version" : {
        "number" : "8.x.x",
        ...
      },
      "tagline" : "You Know, for Search"
    }
4. 安装Head插件(可选)

为了更方便地管理和查看数据,可以安装elasticsearch-head插件。

  1. 打开浏览器访问Head插件GitHub页面
  2. 按照说明运行插件,并通过浏览器访问http://localhost:9100

二、Spring Boot整合Elasticsearch

完成Elasticsearch在Windows的安装后,接下来演示如何在Spring Boot项目中集成Elasticsearch。

1. 创建Spring Boot项目并添加依赖
  1. 在IDEA中创建一个Spring Boot项目,并添加以下依赖:
xml 复制代码
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
    </dependency>
</dependencies>
2. 配置Spring Boot连接Elasticsearch

application.ymlapplication.properties文件中添加如下配置:

yaml 复制代码
spring:
  elasticsearch:
    uris: http://localhost:9200  # 设置Elasticsearch地址
3. 创建实体类和Repository接口

假设我们有一个简单的商品数据,需要将其存储到Elasticsearch中。

  1. 创建实体类 Product

    java 复制代码
    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
    }
  2. 创建Repository接口 ProductRepository

    java 复制代码
    import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
    
    public interface ProductRepository extends ElasticsearchRepository<Product, String> {
        // 自定义查询方法可以在这里定义,例如根据名称查找
        List<Product> findByName(String name);
    }
4. 测试代码

编写测试类,插入和查询数据:

java 复制代码
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项目
  1. 启动项目后,Spring Boot会自动连接到Elasticsearch。
  2. ElasticsearchTest中,我们插入了一条商品数据并通过findByName查询输出。
6. 注意事项
  • Elasticsearch版本要与Spring Data Elasticsearch版本兼容,不兼容可能导致连接失败。
  • 在生产环境中,需设置更严格的安全配置,例如使用认证、HTTPS等。

三、总结

通过以上步骤,我们实现了在Windows系统上安装Elasticsearch,并在Spring Boot中完成了与Elasticsearch的整合。

相关推荐
それども12 分钟前
为什么要加@ResponseBody
java·开发语言·spring boot
2501_9444241234 分钟前
Flutter for OpenHarmony游戏集合App实战之记忆翻牌配对消除
android·java·开发语言·javascript·windows·flutter·游戏
李慕婉学姐34 分钟前
【开题答辩过程】以《基于Spring Boot和大数据的医院挂号系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
大数据·spring boot·后端
大强同学1 小时前
AutoHotkey打包exe完全指南!
windows·microsoft
invicinble3 小时前
对于springboot
java·spring boot·后端
Coder_Boy_3 小时前
基于SpringAI的在线考试系统-知识点管理模块完整优化方案
java·前端·人工智能·spring boot
码界奇点3 小时前
基于Spring Boot与Vue的校园后台管理系统设计与实现
vue.js·spring boot·后端·毕业设计·源代码管理
J_liaty3 小时前
基于EasyExcel实现文件导入导出功能
spring boot·easyexcel
未若君雅裁3 小时前
SpringBoot2.x与SpringBoot3.x自动配置注册的差异
java·spring boot
lbb 小魔仙4 小时前
【Harmonyos】开源鸿蒙跨平台训练营DAY3:为开源鸿蒙跨平台工程集成网络请求能力,实现数据清单列表的完整构建与开源鸿蒙设备运行验证(及常见问题与方法)
windows·开源·harmonyos·鸿蒙·开源鸿蒙·鸿蒙开平台应用