springboot 整合es

Spring Boot可以轻松地与Elasticsearch进行整合,以实现高效的搜索和分析功能。

以下是如何在Spring Boot应用程序中使用Elasticsearch的步骤:

1.添加依赖项

pom.xml文件中添加以下依赖项:

复制代码
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

2.配置Elasticsearch

在Spring Boot应用程序的配置文件application.properties中添加以下配置:

复制代码
spring.data.elasticsearch.cluster-name=elasticsearch
spring.data.elasticsearch.cluster-nodes=localhost:9300

这里假设您正在运行Elasticsearch节点,该节点位于本地主机上的端口9300。

3.创建Elasticsearch存储库

创建一个包含所有必需方法的Elasticsearch存储库接口。例如:

复制代码
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;

public interface ProductRepository extends ElasticsearchRepository<Product, Long> {
}

4.定义数据模型

定义与Elasticsearch文档相对应的数据模型。例如,以下是一个名为"Product"的类:

复制代码
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;

@Document(indexName = "products", type = "product")
public class Product {
   @Id
   private String id;
   private String name;
   private String description;
   private double price;
   // getters and setters
}

5.使用存储库

在Spring Boot应用程序的服务层中使用存储库进行搜索和保存数据。例如:

复制代码
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class ProductService {
   @Autowired
   private ProductRepository productRepository;

   public Iterable<Product> searchByName(String name) {
      return productRepository.findByName(name);
   }

   public void save(Product product) {
      productRepository.save(product);
   }
}

6.测试您的应用程序

您现在可以启动您的Spring Boot应用程序并测试它是否可以与Elasticsearch集成。例如,您可以像以下方式搜索产品:

复制代码
@Autowired
private ProductService productService;

@GetMapping("/search")
public List<Product> search(@RequestParam String name) {
   Iterable<Product> products = productService.searchByName(name);
   List<Product> productList = new ArrayList<>();
   products.forEach(productList::add);
   return productList;
}

此外,您还可以使用Elasticsearch的REST API测试您的应用程序。例如,您可以通过以下方式创建一个名为"Product"的索引:

复制代码
PUT /products
{
   "settings": {
      "number_of_shards": 1
   },
   "mappings": {
      "product": {
         "properties": {
            "name": {
               "type": "text"
            },
            "description": {
               "type": "text"
            },
            "price": {
               "type": "double"
            }
         }
      }
   }
}

然后,您可以向"Product"索引添加文档:

复制代码
POST /products/product
{
   "name": "iPhone X",
   "description": "Apple iPhone",
   "price": 999.99
}
相关推荐
gnufre1 小时前
Kubernetes 1.28 无 Docker 运行时环境下的容器化构建实践:Kaniko + Jenkins 全链路详解
kubernetes·jenkins·kaniko
Clown951 小时前
go-zero(十九)使用Prometheus监控ES指标
elasticsearch·golang·prometheus
云攀登者-望正茂1 小时前
无缝部署您的应用程序:将 Jenkins Pipelines 与 ArgoCD 集成
运维·jenkins·argocd
wowocpp2 小时前
spring boot Controller 和 RestController 的区别
java·spring boot·后端
独泪了无痕2 小时前
MongoTemplate 基础使用帮助手册
spring boot·mongodb
獨枭5 小时前
使用 163 邮箱实现 Spring Boot 邮箱验证码登录
java·spring boot·后端
维基框架5 小时前
Spring Boot 封装 MinIO 工具
java·spring boot·后端
秋野酱5 小时前
基于javaweb的SpringBoot酒店管理系统设计与实现(源码+文档+部署讲解)
java·spring boot·后端
Q_Q19632884755 小时前
python的家教课程管理系统
开发语言·spring boot·python·django·flask·node.js·php
忧郁的狐狸7 小时前
Jenkins 安装与配置指南
运维·jenkins