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的整合。

相关推荐
optimistic_chen18 分钟前
【Java EE进阶 --- SpringBoot】Mybatis - plus 操作数据库
数据库·spring boot·笔记·java-ee·mybatis·mybatis-plus
waving-black29 分钟前
windows系统下安装测试kafka
windows·分布式·kafka
来旺1 小时前
互联网大厂Java面试全解析及三轮问答专项
java·数据库·spring boot·安全·缓存·微服务·面试
摇滚侠1 小时前
Spring Boot 3零基础教程,yml文件中配置和类的属性绑定,笔记15
spring boot·redis·笔记
thginWalker1 小时前
使用Spring Boot构建消息通信层
spring boot
lang201509281 小时前
Spring Boot 外部化配置最佳实践指南
java·spring boot
摇滚侠2 小时前
Spring Boot 3零基础教程,WEB 开发 HTTP 缓存机制 笔记29
spring boot·笔记·缓存
Knight_AL2 小时前
Spring Boot 中使用自定义注解和 AOP 实现微服务日志记录(包含 URL、状态码和耗时信息)
linux·spring boot·微服务
Q_Q19632884752 小时前
python+vue的在线租房 房屋租赁系统
开发语言·vue.js·spring boot·python·django·flask·node.js
RealmElysia2 小时前
CoAlbum 引入ES
java·elasticsearch