Spring Boot中使用Spring Data Elasticsearch访问Elasticsearch

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

Spring Boot中使用Spring Data Elasticsearch访问Elasticsearch

Elasticsearch是一个分布式的全文搜索和分析引擎,它可以将海量数据进行快速的查询和聚合。Spring Data Elasticsearch是Spring Data家族中的一个成员,它提供了与Elasticsearch的集成,可以方便地使用Spring框架来访问Elasticsearch。

在本文中,我们将会介绍如何在Spring Boot中使用Spring Data Elasticsearch来访问Elasticsearch。我们将会使用一个简单的示例来说明如何进行配置、索引的创建和数据的查询。代码将会使用Java语言编写,并使用md格式展示。

Spring Boot中使用Spring Data Elasticsearch访问Elasticsearch

环境准备

在开始使用Spring Data Elasticsearch之前,需要准备以下环境:

  • JDK 1.8或以上版本
  • Elasticsearch 6.4或以上版本
  • Spring Boot 2.1或以上版本

添加依赖

首先,我们需要在pom.xml文件中添加Spring Data Elasticsearch的依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

配置接下来,我们需要在application.properties文件中添加Elasticsearch的配置信息,包括Elasticsearch的地址、端口号和集群名称:

spring.data.elasticsearch.cluster-name=my-elasticsearch-cluster
spring.data.elasticsearch.cluster-nodes=localhost:9300

定义实体类

在使用Spring Data Elasticsearch时,我们需要定义为每个Elasticsearch的索引创建一个实体类。在实体类中,需要使用注解来指定索引的名称、类型和字段的映射关系。以下是一个简单的示例:

@Document(indexName = "book", type = "novel")
public class Book {
    @Id
    private String id;
    private String name;
    private String author;
    private String description;
    // 省略getter和setter方法
}

在上面的示例中,我们使用@Document注解指定了索引名称为book,类型为novel。使用@Id注解指定了实体类中的id字段为Elasticsearch中文档的唯一标识符。其他字段的映射关系将由Spring Data Elasticsearch自动推断。

创建索引

在使用Elasticsearch之前,我们需要先创建索引。在Spring Data Elasticsearch中,可以使用ElasticsearchTemplate或者ElasticsearchOperations来创建索引。以下是一个使用ElasticsearchTemplate创建索引的示例:

@Autowired
private ElasticsearchTemplate elasticsearchTemplate;

// 创建索引
elasticsearchTemplate.createIndex(Book.class);
// 创建映射
elasticsearchTemplate.putMapping(Book.class);

在上面的示例中,我们首先通过@Autowired注解注入了ElasticsearchTemplate对象,然后调用了createIndexputMapping方法来创建索引和映射。createIndex方法将会根据实体类的注解信息创建索引,而putMapping方法将会根据实体类的注解信息创建映射。

插入数据

在创建索引之后,我们可以使用ElasticsearchTemplate或者ElasticsearchOperations来插入数据。以下是一个使用ElasticsearchTemplate插入数据的示例:

@Autowired
private ElasticsearchTemplate elasticsearchTemplate;

// 创建书籍
Book book = new Book();
book.setId("1");
book.setName("《红楼梦》");
book.setAuthor("曹雪芹");
book.setDescription("一个关于贾宝玉、林黛玉等人物的故事");

// 插入数据
IndexQuery indexQuery = new IndexQueryBuilder()
        .withIndexName("book")
        .withType("novel")
        .withObject(book)
        .build();
String documentId = elasticsearchTemplate.index(indexQuery);

在上面的示例中,我们首先创建了一个Book对象,然后使用IndexQueryBuilder构建器创建了一个IndexQuery对象,指定了索引名称、类型和要插入的数据。最后,使用elasticsearchTemplate对象的index方法将数据插入到Elasticsearch中,并返回文档的唯一标识符。

查询数据

在插入数据之后,我们可以使用ElasticsearchTemplate或者ElasticsearchOperations来查询数据。以下是一个使用ElasticsearchTemplate查询数据的示例:

@Autowired
private ElasticsearchTemplate elasticsearchTemplate;

// 构建查询条件
QueryBuilder queryBuilder = QueryBuilders.matchQuery("name", "红楼梦");

// 查询数据
SearchQuery searchQuery = new NativeSearchQueryBuilder()
        .withQuery(queryBuilder)
        .build();
List<Book> books = elasticsearchTemplate.queryForList(searchQuery, Book.class);

在上面的示例中,我们首先使用QueryBuilder构建器创建了一个查询条件,指定了要查询的字段和查询的关键字。然后,使用NativeSearchQueryBuilder构建器创建了一个SearchQuery对象,指定了要查询的索引和查询条件。最后,使用elasticsearchTemplate对象的queryForList方法执行查询,并将结果转换为Book类型的列表。

总结

本文介绍了如何在Spring Boot中使用Spring Data Elasticsearch来访问Elasticsearch。我们首先添加了Spring Data Elasticsearch的依赖,然后配置了Elasticsearch的地址和端口号。接着,定义了一个Book实体类,并使用注解指定了索引的名称、类型和字段的映射关系。然后,使用ElasticsearchTemplate创建了索引并插入了数据。最后,使用ElasticsearchTemplate查询了数据并将结果转换为Book类型的列表。

Spring Data Elasticsearch提供了丰富的API和工具,可以方便地操作Elasticsearch。在实际开发中,可以根据具体的需求选择适合的API和工具来使用。文章来源地址https://www.toymoban.com/news/detail-473788.html

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

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

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

相关文章

  • Elasticsearch7.x——spring-boot-starter-data-elasticsearch详解

    Spring Data Elasticsearch是Spring Data项目下的一个子模块。 查看 Spring Data的官网:http://projects.spring.io/spring-data/ Spring Data 的使命是给各种数据访问提供统一的编程接口,不管是关系型数据库(如MySQL),还是非关系数据库(如Redis),或者类似Elasticsearch这样的索引数据库。从而简化

    2024年02月03日
    浏览(32)
  • 【工作记录】springboot集成spring-data-elasticsearch访问es及问题解决

    ​ 前文我们介绍了通过可视化爬虫爬取新闻到Mysql库、基于docker-compose的elk集群部署及抽取mysql数据到es的过程,本文我们介绍通过集成springboot和spring-data-elasticsearch客户端完成连接es并查询数据的开发过程以及遇到的问题和解决方案,希望对大家能有所帮助,对文中内容有任何

    2023年04月10日
    浏览(27)
  • 基于spring-boot-starter-data-elasticsearch整合elasticsearch于window系统

    在配置环境中会需要到elasticsearch和kibana,这两个和spring-boot-starter-data-elasticsearch都必须得保持版本一致,我们可以通过查看他maven的配置: 比如我使用的是 spring-boot-starter-data-elasticsearch:2.7.3 查看到他的maven的结构后可以看到他们都指向了elasticsearch的一个版本7.17.4,因此在电

    2024年04月25日
    浏览(33)
  • Spring Data Elasticsearch 使用(Elasticsearch)

      在项目的 pom.xml 中引⼊Spring Data Elasticsearch的启动器。  需要注意的是,Spring Data Elasticsearch底层使⽤的不是Elasticsearch提供的RestHighLevelClient,⽽是 TransportClient,并不采⽤HTTP协议通信,⽽是访问Elasticsearch对外开放的TCP端⼝。我们在之前集群配置 中,设置的端⼝分别是:9301、

    2024年02月05日
    浏览(27)
  • Spring Boot 篇四: Spring Data JPA使用SQL Server

    本篇介绍篇一至篇三中用到的JPA链接SQL Server的具体情况以及实战过程中可能遇到的问题。 具体的下载和安装教程,请参阅微软SQL Server官网; SQL Server Express 是免费的,并且配套的SQL Server Management Studio也是可以用的。 呃,当然,使用Docker来运行SQL Server是另外一条路径。具体

    2024年02月05日
    浏览(83)
  • Spring Data Elasticsearch配置及使用

    以POJO为中心模型用于与Elastichsearch文档交互,并轻松编写存储库样式的数据访问层框架 我们学习的是底层封装了Rest High Level的ElasticsearchRestTemplate模板类型。需要使用Java API Client(Transport),则应用ElasticsearchTemplate模板类型即可。两种类型中的方法API几乎完全一样,学会了一

    2024年02月11日
    浏览(33)
  • Spring Data Elasticsearch 的简单使用

    目录 一、简介 二、配置 三、映射 四、 常用方法 五、操作(重点) 1、对索引表的操作 2、对文档的操作(重点) (1)、添加文档  (2)、删除文档 (3)、查询文档(重点) 查询全部文档 (两种方式) matchQuery根据拆分进行全局搜索 matchPhraseQuery短语搜索--完整搜

    2024年02月12日
    浏览(29)
  • Spring Data Elasticsearch--使用/教程/实例

    原文网址:Spring Data Elasticsearch--使用/教程/实例_IT利刃出鞘的博客-CSDN博客 技术星球 欢迎来到IT技术星球,网站是:learn.skyofit.com(或者百度直接搜:自学精灵)。内容有: Java真实面试题 、 Java设计模式实战 、Shiro项目实战、 Idea和Navicat的“魔法” 教程、 SpringBoot进阶 、架构

    2023年04月09日
    浏览(29)
  • 【Spring连载】使用Spring Data访问 MongoDB(一)----快速指南

    Spring Data MongoDB 4.x二进制文件需要JDK级别17及以上版本和Spring Framework 6.1.4及以上版本。 在数据库和驱动程序方面,你需要至少4.x版本的MongoDB和兼容的MongoDB Java驱动程序(4.x或5.x)。 首先,需要设置一个正在运行的MongoDB服务器。请参考MongoDB安装指南,了解如何启动MongoDB实例

    2024年02月21日
    浏览(36)
  • 【Spring Boot】SpringBoot和数据库交互: 使用Spring Data JPA

    在现代应用程序的开发中,数据是核心部分。为了能够持久化、检索、更新和删除数据,应用程序需要与数据库进行交互。 1.1 为什么需要数据库交互 数据持久化 :当你关闭应用程序或者服务器时,你仍希望数据能够保存。数据库提供了一个持久的存储方案,使得数据在关闭

    2024年02月12日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包