当前位置: 首页 > article >正文

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
  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信息表示启动成功:
    {
      "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项目,并添加以下依赖:
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
    </dependency>
</dependencies>
2. 配置Spring Boot连接Elasticsearch

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

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

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

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

三、总结

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


http://www.kler.cn/a/395903.html

相关文章:

  • JVM双亲委派与自定义类加载器
  • 新版Apache tomcat服务安装 Mac+Window双环境(笔记)
  • QT_CONFIG宏使用
  • Ubuntu24.04上安装和配置MariaDB
  • Go开发指南- Goroutine
  • 服务jar包增加高斯数据库驱动jar包
  • Flutter-左侧导航栏跟随窗口的宽变化
  • 使用机器学习优化数据库查询性能
  • FastGPT部署通义千问Qwen和智谱glm模型|OneAPI配置免费的第三方API
  • 基于集成Whisper 与 Pepper-GPT改进人机交互体验并实现顺畅通信
  • Git之国内项目托管平台
  • 物联网低功耗广域网LoRa开发(二):LoRa开发环境搭建及驱动移植
  • CSS基础知识01
  • 论文 | On Second Thought, Let’s Not Think Step by Step!
  • 【澜舟科技-注册/登录安全分析报告】
  • 蓝桥杯每日真题 - 第12天
  • 刷别的学校oj—河工大oj1073-1099
  • linux 下调试 bmp280 气压传感器
  • jmeter常用配置元件介绍总结之逻辑控制器
  • 【笔记】关于git和GitHub和git bash
  • Neo4j Desktop 和 Neo4j Community Edition 区别
  • CAN编程示例之socket CAN
  • 人工智能大模型即服务时代:在网络安全中的应用
  • 使用runtime/pprof包进行Go程序性能调优的实战教程
  • 博物馆实景复刻:开启沉浸式文化体验的新篇章
  • HMSC联合物种分布模型在群落生态学中的贝叶斯统计分析