Spring Boot整合Elasticsearch

发布时间:2024-11-15 12:14:05 作者:小樊
来源:亿速云 阅读:157

Spring Boot整合Elasticsearch是一个相对简单的过程,可以通过以下步骤来完成:

1. 添加依赖

首先,在你的pom.xml文件中添加Spring Boot和Elasticsearch的依赖。

<dependencies>
    <!-- Spring Boot Starter Data Elasticsearch -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
    </dependency>

    <!-- Elasticsearch Client -->
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-java</artifactId>
    </dependency>

    <!-- Spring Boot Starter Web for RESTful services -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

2. 配置Elasticsearch

application.propertiesapplication.yml文件中配置Elasticsearch的连接信息。

application.properties

spring.elasticsearch.rest.uris=http://localhost:9200

application.yml

spring:
  elasticsearch:
    rest:
      uris: http://localhost:9200

3. 创建Elasticsearch Repository

创建一个接口来定义对Elasticsearch的操作。

import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface MyDocumentRepository extends ElasticsearchRepository<MyDocument, String> {
}

4. 创建Elasticsearch实体类

创建一个实体类来映射到Elasticsearch的文档。

import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

@Document(indexName = "my_documents")
public class MyDocument {

    @Id
    private String id;

    @Field(type = FieldType.Text)
    private String title;

    @Field(type = FieldType.Text)
    private String content;

    // Getters and Setters
}

5. 使用Repository进行操作

在你的服务或控制器中使用MyDocumentRepository进行CRUD操作。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class MyDocumentService {

    @Autowired
    private MyDocumentRepository repository;

    public MyDocument saveDocument(MyDocument document) {
        return repository.save(document);
    }

    public List<MyDocument> findAllDocuments() {
        return repository.findAll();
    }

    public MyDocument findDocumentById(String id) {
        return repository.findById(id).orElse(null);
    }

    public void deleteDocument(String id) {
        repository.deleteById(id);
    }
}

6. 创建控制器

创建一个控制器来提供RESTful API接口。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/documents")
public class MyDocumentController {

    @Autowired
    private MyDocumentService service;

    @PostMapping
    public MyDocument saveDocument(@RequestBody MyDocument document) {
        return service.saveDocument(document);
    }

    @GetMapping
    public List<MyDocument> findAllDocuments() {
        return service.findAllDocuments();
    }

    @GetMapping("/{id}")
    public MyDocument findDocumentById(@PathVariable String id) {
        return service.findDocumentById(id);
    }

    @DeleteMapping("/{id}")
    public void deleteDocument(@PathVariable String id) {
        service.deleteDocument(id);
    }
}

7. 启动应用

启动你的Spring Boot应用,然后访问Elasticsearch的REST API来验证整合是否成功。

curl -X POST "http://localhost:8080/documents" -H 'Content-Type: application/json' -d'
{
    "title": "Sample Document",
    "content": "This is a sample document for Elasticsearch integration."
}'

通过以上步骤,你就可以成功地在Spring Boot应用中整合Elasticsearch,并提供基本的CRUD操作。

推荐阅读:
  1. Spring Cloud 微服务开发系列整理
  2. Spring Boot怎样进行整合elasticsearch

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

spring boot

上一篇:Spring Boot健康检查接口实现

下一篇:Spring Boot中JWT过期处理策略

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》