Spring Boot 中的 Elasticsearch 的数据操作配置

这篇具有很好参考价值的文章主要介绍了Spring Boot 中的 Elasticsearch 的数据操作配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Spring Boot 中的 Elasticsearch 的数据操作配置

Elasticsearch是一个基于Lucene的搜索引擎,可以快速地存储、搜索和分析大量的数据。Spring Boot是一个开发框架,提供了快速构建基于Spring的应用程序的工具和技术。在本文中,我们将讨论如何在Spring Boot应用程序中配置Elasticsearch数据操作。

springboot配置elasticsearch,Java 教程,spring boot,elasticsearch,jenkins

Elasticsearch简介

Elasticsearch是一个开源的全文搜索和分析引擎,可以快速地存储、搜索和分析大量的数据。它基于Lucene引擎,提供了一个分布式、多租户、实时搜索和分析的能力。Elasticsearch使用JSON格式的文档来存储数据,可以通过RESTful API进行访问。

Spring Boot中的Elasticsearch数据操作

Spring Boot提供了对Elasticsearch的支持,可以通过Spring Data Elasticsearch来进行数据操作。Spring Data Elasticsearch是一个基于Spring Data的模块,提供了对Elasticsearch的集成支持。它可以通过注解或者XML文件来配置Elasticsearch的数据访问。

配置Elasticsearch客户端

在Spring Boot应用程序中使用Elasticsearch,首先需要配置Elasticsearch客户端。可以使用Elasticsearch官方提供的Java客户端或者Spring Data Elasticsearch提供的客户端。这里我们选择使用Spring Data Elasticsearch提供的客户端。

@Configuration
@EnableElasticsearchRepositories(basePackages = "com.example.repository")
public class ElasticsearchConfig {

    @Value("${elasticsearch.host}")
    private String host;

    @Value("${elasticsearch.port}")
    private int port;

    @Value("${elasticsearch.clustername}")
    private String clusterName;

    @Bean
    public Client client() throws Exception {

        Settings settings = Settings.builder()
                .put("cluster.name", clusterName)
                .build();

        TransportClient client = new PreBuiltTransportClient(settings)
                .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(host), port));

        return client;
    }

    @Bean
    public ElasticsearchOperations elasticsearchTemplate() throws Exception {
        return new ElasticsearchTemplate(client());
    }
}

在上面的代码中,我们定义了一个ElasticsearchConfig类,使用@EnableElasticsearchRepositories注解开启Elasticsearch的Repository支持。在该类中,我们通过@Value注解读取配置文件中的Elasticsearch主机、端口和集群名称。然后通过TransportClient创建Elasticsearch客户端,并将其注入到Spring容器中。

创建Elasticsearch Repository

在Spring Boot应用程序中使用Elasticsearch,需要定义一个Elasticsearch Repository。Elasticsearch Repository是一个接口,继承自ElasticsearchCrudRepository。ElasticsearchCrudRepository是Spring Data Elasticsearch提供的CrudRepository的子接口,封装了Elasticsearch的基本数据操作接口。ElasticsearchCrudRepository定义了一些基本的CRUD操作,如save、delete、findById等。

@Repository
public interface BookRepository extends ElasticsearchCrudRepository<Book, String> {

    List<Book> findByName(String name);

    List<Book> findByAuthor(String author);

    List<Book> findByCategory(String category);
}

在上面的代码中,我们定义了一个BookRepository接口,继承自ElasticsearchCrudRepository。在该接口中,我们定义了一些查询方法,如findByName、findByAuthor和findByCategory等。

创建Elasticsearch实体类

在Spring Boot应用程序中使用Elasticsearch,需要定义一个Elasticsearch实体类。Elasticsearch实体类是一个POJO类,映射到Elasticsearch中的一个文档。

@Document(indexName = "book", type = "book", shards = 1, replicas = 0, refreshInterval = "-1")
public class Book {

    @Id
    private String id;

    private String name;

    private String author;

    private String category;

    private LocalDateTime publishTime;

    // getter and setter

    // toString

}

在上面的代码中,我们定义了一个Book类,使用@Document注解指定了索引名称为book,类型为book,分片数为1,副本数为0,刷新间隔为-1。在该类中,我们定义了一些属性,如id、name、author、category和publishTime等。使用@Id注解指定了id属性为文档的id。

数据操作示例

在Spring Boot应用程序中使用Elasticsearch,可以通过Elasticsearch Repository进行数据操作。下面是一个数据操作的示例代码。

@Service
public class BookService {

    @Autowired
    private BookRepository bookRepository;

    public void save(Book book) {
        bookRepository.save(book);
    }

    public void delete(String id) {
        bookRepository.deleteById(id);
    }

    public Book findById(String id) {
        Optional<Book> optional = bookRepository.findById(id);
        return optional.orElse(null);
    }

    public List<Book> findByName(String name) {
        return bookRepository.findByName(name);
    }

    public List<Book> findByAuthor(String author) {
        return bookRepository.findByAuthor(author);
    }

    public List<Book> findByCategory(String category) {
        return bookRepository.findByCategory(category);
    }
}

在上面的代码中,我们定义了一个BookService类,使用@Autowired注解注入了BookRepository。在该类中,我们定义了一些数据操作方法,如save、delete、findById、findByName、findByAuthor和findByCategory等。这些方法直接调用Elasticsearch Repository中封装的基本数据操作方法。

总结

在本文中,我们介绍了如何在Spring Boot应用程序中配置Elasticsearch数据操作。首先我们需要配置Elasticsearch客户端,然后定义一个Elasticsearch Repository和Elasticsearch实体类。最后我们可以通过Elasticsearch Repository进行数据操作。使用Spring Boot和Elasticsearch可以快速地构建一个高效的搜索引擎应用程序。文章来源地址https://www.toymoban.com/news/detail-745094.html

到了这里,关于Spring Boot 中的 Elasticsearch 的数据操作配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Spring Boot】使用XML配置文件实现数据库操作(一)

    SQL映射文件就是我们通常说的mapper.xml配置文件,主要实现SQL语句的配置和映射,同时实现Java的POJO对象与数据库中的表和字段进行映射关联的功能。 1.1 mapper.xml的结构 下面就来详细介绍mapper.xml文件的结构。首先看一个完整的mapper.xml示例:

    2024年02月10日
    浏览(60)
  • spring boot集成Elasticsearch-SpringBoot(25)

      搜索引擎(search engine )通常意义上是指:根据特定策略,运用特定的爬虫程序从互联网上搜集信息,然后对信息进行处理后,为用户提供检索服务,将检索到的相关信息展示给用户的系统。   而我们讲解的是捜索的索引和检索,不涉及爬虫程序的内容爬取。大部分公司

    2023年04月09日
    浏览(113)
  • 使用ElasticsearchRepository和ElasticsearchRestTemplate操作Elasticsearch,Spring Boot整合Elasticsearch

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Elasticsearch官网参考文档:https://www.elastic.co/guide/index.html Elasticsearch官方下载地址:https://www.elastic.co/cn/downloads/elasticsearch https://docs.spring.io/spring-data/elasticsearch/reference/ 添加依赖 修改yml配置文件 【自定义

    2024年04月22日
    浏览(47)
  • spring boot 项目中搭建 ElasticSearch 中间件 一 spring data 操作 es

    作者: 逍遥Sean 简介:一个主修Java的Web网站游戏服务器后端开发者 主页:https://blog.csdn.net/Ureliable 觉得博主文章不错的话,可以三连支持一下~ 如有需要我的支持,请私信或评论留言! 本文是进行ElasticSearch 的环境准备和基础操作(使用postman),并且已经能够使用java api操作

    2024年02月10日
    浏览(44)
  • SpringBoot整理-Spring Boot配置

    Spring Boot 的配置系统是其核心功能之一,旨在简化 Spring 应用的配置过程。Spring Boot 提供了一种灵活的方式来配置你的应用,无论是通过外部配置文件,环境变量,命令行参数还是在代码中直接配置。以下是关于 Spring Boot 配置的几个重要方面: 配置文件 application.prop

    2024年01月25日
    浏览(55)
  • Spring Boot中Elasticsearch的连接配置、原理与使用

    Elasticsearch是一种开源的分布式搜索和数据分析引擎,它可用于全文搜索、结构化搜索、分析等应用场景。在Spring Boot中,我们可以通过Elasticsearch实现对数据的搜索和分析。本文将介绍Spring Boot中Elasticsearch的连接配置、原理和使用方法。 在Spring Boot中,我们可以通过引入Elast

    2024年02月11日
    浏览(38)
  • spring boot 项目中搭建 ElasticSearch 中间件 一 postman 操作 es

    作者: 逍遥Sean 简介:一个主修Java的Web网站游戏服务器后端开发者 主页:https://blog.csdn.net/Ureliable 觉得博主文章不错的话,可以三连支持一下~ 如有需要我的支持,请私信或评论留言! 本文是ElasticSearch 的入门文章,包含ElasticSearch 的环境准备和基础操作(使用postman) Elas

    2024年02月11日
    浏览(37)
  • spring boot中的多环境配置

    的作用是为了启动某个环境,两个作用基本一致, 环境定义如下: 或者是查找application-dev.yml这个文件的所有配置 加载问价,使用的是import,注意语法:

    2024年02月06日
    浏览(40)
  • Spring Boot 中的 CSRF 保护配置

    CSRF(Cross-Site Request Forgery)是一种网络攻击,它利用已认证用户的身份来执行未经用户同意的操作。Spring Boot 提供了内置的 CSRF 保护机制,可以帮助您防止这种类型的攻击。本文将介绍如何在 Spring Boot 中配置和使用 CSRF 保护。 CSRF 攻击是一种利用用户已经在网站上进行了身份

    2024年02月07日
    浏览(32)
  • 使用Spring Boot、MyBatis Plus和Elasticsearch配置的简单示例

    下面是一个使用Spring Boot、MyBatis Plus和Elasticsearch的简单示例: 首先,在pom.xml文件中添加以下依赖: 创建一个Spring Boot应用程序: 在application.properties文件中配置Elasticsearch: spring.data.elasticsearch.cluster-name:设置Elasticsearch集群的名称。 spring.data.elasticsearch.cluster-nodes:设置Elast

    2024年02月11日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包